机器学习常用算法knn,岭回归,Lasso,Logistic,SVC,决策树,贝叶斯,K-Means

机器学习常用算法小结

有监督

  • 有答案的

  • 商用最多的,主要是分类

无监督

  • 没有答案

半监督

  • 部分有答案

  • 使用有答案的数据进行训练模型,然后使用陌生数据进行验证

过拟合和欠拟合

  • 过拟合:使用样本的特征过多,导致很多无用的特征被加入到计算中,导致模型泛化受到过多无用特征的影响,精度变得很低

  • 欠拟合:在选取特征时,选取的过于简单,主要的特征没有获取,导致模型在测试集上的表现很差

kNN

k近邻算法

距离

  • 抽象的问题,采用欧式距离最近的点为预测目标的类别

参数:

  • n_neighbors表示预测是参考的样本的数量,数量越少会导致欠拟合,过多会导致过拟合,选择适当的数量可以是模型达到最好的效果

岭回归和Lasso回归

  • 实践中,一般首选岭回归,但是如果特征很多,但是只有其中的几个是重要的,那么选择Lasso回归可能效果会更好

  • sklearn还提供了 ElasticNet 类,结合了 Lasso 和 Ridge 的惩罚项,实践中,这种结合的效果是最好的,不过需要调节俩个参数,一个用于 L1,一个用于 L2

岭回归 Ridge

  • 最小二乘法

岭回归是加了二阶正则项的最小二乘, 主要是用于过拟合严重和存在多重共线性,岭回归是有 bias 的,这里的 bias 是为了 vanance 更小

  • bias:

  • vanance:

引入偏差,让数据便于计算

会将无效的系数无限向0压缩,减少无效系数的影响

参数 alpha

  • alpha 为惩罚项

  • 越大,系数压索越严重, 原始系数对结果的影响变小

  • alpha=0 变为线性回归

  • 越小 原始系数对结果的影响增大

Lasso 回归

  • 使用的是拉格朗日乘法

和岭回归的区别:

  • 和岭回归类似,算法不同

  • 直接对系数进行修正,而岭回归则是对系数的压缩,Lasso回归会将无用的系数修正为0, 而岭回归只会无限压缩,让系数趋近于0

  • lasso 可以将系数压缩到0,压缩系数的强度大于岭回归

  • 引入惩罚项,对参数 w 增加了限定条件

  • 可以认为lasso是岭回归的加强,岭回归能解决的问题也可以使用lasso回归来解决,可以通过对比模型的精度来确定哪种模型更加可靠

参数 alpha:

  • 越大,惩罚力度越小,原始系数对结果的影响越小

  • 越小,惩罚力度越大,原始系数对结果的影响越大

常见的线性分类算法

  • 常见的两种线性分类算法是 Logistic 回归 和 线性支持向量机 SVM

逻辑斯蒂回归 Logistic

根据数据对分类的边界线建立回归公式,目的主要是用于分类,属于梯度下降算法

优缺点

  • 优点:实现简单,易于理解和实现,计算代价不高,速度快,存储资源低

  • 缺点:容易欠拟合,分类的精度可能不高

from sklearn.linear_model import LogaisticRegression

以回归的算法实现数据的分类

参数 C

  • C 越大, 正则化越小,那么模型更强调使系数向量(w)接近0

  • C 值越大,LogisticRegression 和 LinearSVC 将尽可能的将训练数据集拟合到最好,

  • 较大的 C 值更强调每个数据点都分类正确的重要性

强正则化的模型会选择一条相对水平的线,C值稍大,模型更加关注两个分类错误的样本,C值非常大时,决策边界的斜率会非常的大,模型可能会变得过拟合

SVM

主要针对小样本数据进行学习、预测(有时也叫回归)的一种方法,能解决神经网络不能解决的问题,而且有很好的泛化能力

svc

支持向量机将数据映射到高维空间有两种常用的方法

  • 一种是多项式核,在一定阶数内计算原始特征所有的可能多项式

  • 另一种是径向基函数核,也叫高斯核,它可以解释为考虑所有的结束的所有可能的多项式,但阶数越高,特征的重要性越小

参数

  • C : 正则化参数,与线性模型类似,它限制每个点的重要性, 也就是每个点的 dual_coef_

  • gamma:用于控制高斯核的宽度

决策树(decision tree)

  • 决策树是一种树结构,其每个节点代表一个属性

决策树:信息论

逻辑斯蒂回归和贝叶斯:概率论

构造决策树:

  • 分裂属性,二叉树(二分裂)

算法:ID3

  • ID3介绍: 就是每次需要分裂时,计算每个属性的增益率,然后选择增益率最大的进行分裂,

  • 在决策树中,设D为用类别对训练元祖进行划

  • 原则:将无序的数据变得有序

  • 熵:信息的混乱度

  • 信息熵--离散随机事件出现的概率,系统有序化程度的度量

  • 信息增益:以不同属性对数据进行训练划分之后,得到的不同信息熵进行相减,信息增益就是两者的差值。

信息增益越大,说明该属性对结果的影响越大, 贪心算法会选择增益最大的属性进行计算

贝叶斯

概率论

在B发生的情况下A发生的概率,条件概率

朴素贝叶斯

  • 独立性假设,假设各个属性不想关,进行分类,朴素贝叶斯和线性的分类器是相似的,但是朴素贝叶斯的泛化性能可能会稍差一些

3种贝叶斯模型

  1. 高斯分布朴素贝叶斯

from sklearn.naive_bayes import GaussianNB
​
g_NB = GaussianNB()
g_NB.fit(X_train, y_train)
  1. 多项式分布朴素贝叶斯

  • 用于文本数据

  1. 伯努利分布朴素贝叶斯

  • 用于文本数据,但是表现不如多项式,适合小文本,精确度高

K-Means 均值聚类

  • 是一种无监督学习的模型

  • 自动将相似的对象归一到同一个簇中

  • 主要通过不断地取离种子点最近均值的算法

  • 算法思想:按照样本之间的距离大小, 将样本分为K个簇,让簇内的店尽量紧密的连在一起,并且让簇之间的距离尽量的大

原理:

  • 计算各个点之间的欧式距离的和

  • K 为分类的簇的个数,K需要事先给定,但是K值的大小是非常难以估计的

  • 内置的 ISODATA算法通过类的自动合并和分裂,使得较为合理的类型数目K ,优化算法

  • K-Means算法需要用初始随机种子来让每次聚类都在同一位置开始

流程:

  • 从数据中选择 K 个对象作为初始聚类中心

  • 计算每个聚类对象到聚类中心的距离来划分

  • 在次计算每个聚类中心

  • 计算标准测度函数,知道达到最大迭代次数,则停止,否则,继续操作

  • 确定最优的聚类中心

猜你喜欢

转载自blog.csdn.net/zhang_Ming_lu/article/details/81262910
今日推荐