
机器学习
机器学习算法介绍
永不落后于人
永远相信美好的事情即将发生
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
sklearn常用库合集及使用示例
文本类型特征值化DictVectorizer、CountVectorizer、TfidfVectorizer。字典类型的数据进行特征值化from sklearn.feature_extraction import DictVectorizerdictV = DictVectorizer(sparse=False)res = dictV.fit_transform(X)sparse:是否产生稀疏矩阵,默认为True。X:字典类型的列表文本类型的数据进行特征值化from sklearn.f原创 2021-07-26 15:15:58 · 905 阅读 · 0 评论 -
sklearn特征选择:VarianceThreshold和PCA
PCA是一种分析、简化数据的技术。其目的是数据维度压缩,尽可能降低原始数据的维度,损失少量信息。作用: 削减线性回归和聚类分析中的特征数量。API使用from sklearn.decomposition import PCApca = PCA(n_components = 0.9)data = pca.fit_transform(X)其中n_components可以用小数和整数表示,用小数表示代表降维后的主成分方差和最小所占比例的阈值,一般设置为90%~95%;用证书表示代表降维后的维度数量原创 2021-07-21 14:45:06 · 1599 阅读 · 0 评论 -
sklearn缺失值处理
处理方式1.删除:如果某一行或者某一列缺失值所占比重过大,那么可以删除此行或者此列。2.插补:通过每行或者每列的平均值、中位数,对空值进行填充。通常我们使用插补法,按照每列特征的平均值或者中位数进行填充。代码实现import numpy as npfrom sklearn.impute import SimpleImputer# 老版本的sklearn需要引用如下API# import sklearn.preprocessing.Imputerdef im(): """原创 2021-07-21 10:36:45 · 1255 阅读 · 0 评论 -
特征处理:归一化和标准化的区别及使用
归一化定义把原始的特征数据映射到[0,1]范围内。这个[0,1]范围是默认的,可以手动指定。计算公式x’ = (x - min) / (max - min)x’’ = x’ * (mx - mi) + mi需要注意的是:x’’ 才是最终的计算结果。其中:x表示当前值,min表示每一列特征的最小值,max表示每一列特征的最大值;mx表示[0,1]这个指定范围内的最大值,mi表示[0,1]这个指定范围内的最小值。代码实现from sklearn.preprocessing import Mi原创 2021-07-21 10:09:37 · 1045 阅读 · 0 评论 -
特征工程:对非数值类型的数据进行特征值化
DictVectorizer:对字典类型的非数值数据进行特征值化。CountVectorizer:对文本类型的数据进行特征值化,得到的是每个词出现的次数。TfidfVectorizer:对文本类型的数据进行特征值化,结果 = log(总文档数/该词出现的文档数),表示该词的重要程度。DictVectorizerfrom sklearn.feature_extraction import DictVectorizerdef dictVec(): """ 字典特征提取:对字典类型.原创 2021-07-20 18:04:52 · 654 阅读 · 1 评论 -
监督学习之支持向量机SVM原理与代码实现
支持向量机SVMSVM最基本的应用就是分类。对于SVM,有一个分类平面,两个点集到此平面的最小距离最大,两个点集中的边缘点到此平面的距离最大。原创 2020-12-18 09:31:01 · 225 阅读 · 0 评论 -
监督学习之朴素贝叶斯原理与代码实现
贝叶斯概率公式:|表示后面的条件发生时,前面的事件发生的概率。P(类别|特征) 就表示当特征发生时,这个类别发生的概率。公式可以进行变形:P(类型|特征)*P(特征) = P(特征|类别)*P(类别)等号两侧也就是类别和特征同时发生的概率。先验概率和后验概率:先验概率和后验概率的概念比较抽象,下面我们用一个例子来说明什么是先验概率,什么是后验概率。假设我们开车时堵车有两个因素:车辆太多和发生了交通事故。堵车就是先验概率。如果我们出门前看到新闻上说,今天的路上发生了交通事故,那么我想计原创 2020-12-18 09:28:42 · 245 阅读 · 0 评论 -
监督学习之最邻近分类算法KNN原理与代码实现
最邻近分类算法KNN:近朱者赤近墨者黑,由邻居判读你的分类。为了判断未知样本的类别,以所有已知类别的样本作为参照,计算未知样本与所有已知样本的距离,从中选取与未知样本距离最近的K个已知样本,根据少数服从多数的投票法则,将未知样本与K个最邻近样本中所属类别占比较多的归为一类。距离怎么算?K怎么确定?通过交叉验证(将样本数据按照一定比例,拆分出训练用的数据和验证用的数据,比如6:4拆分出部分训练数据和验证数据),从选取一个较小的K值开始,不断增加K的值,然后计算验证集合的mean_square_原创 2020-12-18 09:27:18 · 311 阅读 · 1 评论 -
监督学习之随机森林原理与代码实现
随机森林:当你对某件事犹豫不决的时候,询问朋友的意见,听从大部分朋友的意见来做决定。随机森林由多个决策树组成,每一棵决策树分别进行判断和分类,每棵决策树都会得到一个自己的分类结果。最后随机森林对所有决策树的分类结果进行统计,分类结果最多的就是最终所属分类。随机森林的构造:构造随机森林的时候,会构造不同的决策树。哪里不同?训练数据不同,特征不同。构造步骤:假设有N个样本,我们有放回的随机抽取(取出一个,记录后放回,再重新抽取)N个样本,用这N个随机的样本训练决策树,作为决策树的根节点处的样本。原创 2020-12-18 09:23:15 · 661 阅读 · 0 评论 -
监督学习之决策树原理与代码实现
决策树:根据已知的条件,从根节点到叶子节点,根据不同的特征逐步判断,最终得到分类结果。决策树的分类过程就像人思考的过程。举个栗子:小明的妈妈给他介绍了一个相亲对象,小明正在考虑要不要去。决策树的构建(ID3决策树):随着树深度的增加,节点的熵迅速降低,熵降低的速度越快越好。这样有望构造一颗高度最矮的决策树。这里的熵指的是信息熵。事情越复杂,出现不同情况的种类就越多,信息熵越大;事情越简单,出现情况种类很少(极端情况为1种情况,那么对应概率为1,那么对应的信息熵为0),此时的信息熵较小。信息熵原创 2020-12-14 17:41:46 · 249 阅读 · 1 评论 -
交叉验证和网格搜索
之前我们训练模型的做法:整个数据集分成两部分,一部分用于训练,一部分用于验证,训练集(training set)和测试集(test set)。训练集和测试集的划分方法不够好,可能不能找到最好的模型与参数。训练的数据量越大,训练出来的模型通常越好。原理:将所有数据集分成5份不重复地每次取其中1份做测试集,其他4做训练集训练模型,之后计算该模型在测试集上的MSE将5次的MSE取平均得到最后的MSE...原创 2020-12-14 14:59:24 · 2624 阅读 · 0 评论 -
监督学习之逻辑回归原理与代码实现
逻辑回归(Logistic Regression):逻辑回归虽然称作回归,但是并不是做回归拟合的,实际上是做二分类的。比如:判断一封邮件是否是垃圾邮件;判断银行贷款是否是欺诈行为;判断一个人是否生病。逻辑回归的结果就是1或0(是或否)。逻辑回归如何分类?之前的博客有介绍线性回归:https://blog.csdn.net/FlatTiger/article/details/110954733逻辑回归就是把线性回归的结果代入Sigmoid函数。Sigmoid函数的取值范围是 0-1。以0.5原创 2020-12-11 11:04:04 · 298 阅读 · 0 评论 -
监督学习之线性回归原理分析与代码实现
线性回归原理:机器学习中,回归就是拟合。利用回归方程(函数),对特征值(feature)和标签值(label/target)之间的关系进行建模。回归方程: 特征:影响结果的因素,也就是x。标签:最终的结果,也就是y。举个栗子:公司中每个人的薪资水平是不一样的,影响薪资的因素(特征)有:资历、学历、岗位、技能等等,薪资就是标签。假如我们把特征的具体值都数字化,我们根据已有员工的特征和标签,生成模型。就能预测新入职员工的薪资水平。误差分析:预测值和真实值之间一般会存在一定的误差,那么如何计算这原创 2020-12-11 09:48:02 · 253 阅读 · 0 评论 -
无监督学习之k-means聚类算法原理分析及代码实现
聚类把相似的对象通过静态分类的方式分成不同的组别或者更多的子集。同一子集中的对象都有相似的属性。K-Means聚类算法:K-Means是找到给定数据集k个簇的算法。簇的个数K是由用户指定的,每一个簇通过其质心(簇中所有点的中心)来描述。K-Means聚类算法的原理:1.创建k个点作为起始质心(通常都是随机选择的)。2.计算数据集中每个数据点到质心的距离,距离哪个质心近,就属于哪一个分类。3.对每一个簇中所有的数据点,计算他们的平均值作为新的质心,并重新计算每一个数据点到质心的距离,重新分类原创 2020-12-10 15:23:30 · 910 阅读 · 1 评论 -
机器学习:监督学习与无监督学习的区别
监督学习:根据现有的数据集,知道输入和输出结果,也就是已知特征和标签的对应关系。根据这种已知的关系,训练得到最优的模型。在监督学习的数据集中,既有特征(feature)信息又有标签(label)信息。通过训练,使得机器找到特征和标签之间的关系(训练得到最优模型)。在新的数据集中,只有特征信息没有标签,让机器根据训练的模型自动去判断出标签。举个栗子:我们知道适当的水分和充足的光照可以使植物的生长速度更快(但是机器不知道这个常识)。下面是一组记录了每天不同光照时间的植物的生长速度(以下数据属于作者杜撰,原创 2020-12-10 12:09:25 · 1265 阅读 · 0 评论 -
无监督学习之关联分析原理探究与代码实现
关联规则分析也称作是购物篮分析。最早是为了发现超市购物中不同的商品之间的关联关系。关联规则反映了一个事物和其他事物的关联性,如果多个事物之间存在着某种关联关系,那么其中一个事物就可以通过其他事物预测到。关联分析是一种在大规模数据集中寻找相互关系的任务。这些关联可以有两种形式:1)频繁项集:经常出现在一起的物品合集;2)关联规则:暗示两个物品之间可能存在很强的关联关系。...原创 2020-12-07 10:10:26 · 1056 阅读 · 0 评论 -
机器学习中为什么要对特征做数据归一化?
对于线性模型来说,对特征做数据归一化是为了使不同的特征处于同样的量级范围内,不至于出现某些特征所占比重过大,从而主导预测结果。另外,归一化可以提升收敛速度。对于梯度下降优化的算法,如果我们的数据没有做归一化,会导致特征空间的不规则性,求最优解过程中,很可能会导致Z字形路线,需要迭代多次才能收敛。归一化之后,在梯度下降进行求解时能较快的收敛。归一化方法:1)x=(x−min)/(max−min)这种方法适用于数值比较集中的情况。这种方法有个缺陷,如果max和min不稳定,很容易使得归一化结果不原创 2020-11-27 12:00:44 · 1229 阅读 · 0 评论 -
机器学习之保存训练模型
话不多说,直接进入正题。1.首先导入joblib包import joblib2.训练好模型之后,即可保存模型到本地joblib.dump(模型实例名称,本地路径/文件名称)比如:joblib.dump(lr, r'G:\学习文件\机器学习\import_learing\predict_card.sav')3.最后在新的文件中导入模型并代入特征数据import joblibtrain_module = joblib.load(r'G:\学习文件\机器学习\import_learing\p原创 2020-11-27 10:59:53 · 1137 阅读 · 0 评论 -
sklearn中train_test_split参数的详细介绍
sklearn中train_test_split()函数可以把数据集切分为随机的训练数据集和测试数据集。下面是源代码中的举例:X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.33, random_state=42)参数信息如下:参数含义x数据集中特征的集合y数据集中标签的集合test_size如果数值在0-1之间,代表测试数据集合所占比例。如果数值大于1,代表测试原创 2020-11-25 15:31:18 · 4903 阅读 · 0 评论