算法常见分类
有监督算法 KNN ID3
无监督算法 Apriori Kmens
其他算法
算法:计算机解决特定问题的步骤。
有监督学习: 利用一组已知类别的样本来训练模型。训练数据均有一个明确的标识。
无监督学习:从无标记的训练数据中推断结论。输入数据不存在明确胡标识或结果。常见无监督学习为聚类。
有监督学习
分类Classification:通过已有数据集的学习。得到一个目标函数,把每个属性集x映射到目标属性y,y是离散的。
回归Regression:y是连续的。
按照原理分类
基于统计:贝叶斯分类
基于规则:决策树算法
基于神经网络:神经网络算法
基于距离:KNN
常用评估指标:
精确率:预测结果与实际结果的比例。
召回率:预测结果中某类结果的正确覆盖率。
F1-Score:统计量,综合评估分类模型,0-1之间。越大越好
KNN
K Nearest Neighbour
步骤:
1.确定K值,确定距离公式
欧式距离,曼哈顿距离,余弦相似度
2.计算距离
3.圈定符合条件的k值记录
训练简单
缺点:
及时性差
K值影响大
容易误判
决策树(ID3,Iterative Dichotomiser 3,迭代树三代)
J Ross Quinlan
1.准备工作
熟悉数据,明确目标
明确自变量和因变量
明确信息度量方式(熵、基尼系数)
明确分支终止条件
2.选择特征
第一级特征选择
计算整体的熵
计算基于特征1的熵
计算基于特征2的熵
……
计算特征1的信息增益
计算特征2的信息增益
……
3.创建分支
第一层分支
第二层分支
……
4.是否终止
纯度为零就可以终止
5.结果生成
缺点:
信息度量不合理
输入类型单一
不做剪枝,容易过拟合
改进算法:
C4.5
信息增益率替代信息增益
对连续属性离散化
进行剪枝
C50
使用boosting
前修剪,后修剪
CART Classification and Regression Tree
Jerome Friedman, Leo Breiman,Charles Stone
核心是基尼系数
分类是二叉树
支持连续值和离散值
后剪枝进行修剪
支持回归,可以预测连续值
其他有监督学习算法
分类算法
KNN(K最近邻,K Nearest Neighbour)
NB (朴素贝叶斯,Naive Bayes)
DT (决策树,Decision Tree)
SVM (支持向量机,Support Vector Machine)
回归预测
线性回归 (Linear Regression)
逻辑回归 (Logistic Regression)
岭回归 (Ridge Regression)
拉索回归 (Lasso Regression)
无监督学习算法
聚类算法 Clustering
将相似的事物聚集在一起,将不相似的事物划分到不同的类别。
层次聚类
划分聚类
密度聚类
K-Means,K均值聚类
属于划分聚类
1.确定聚类个数
观察法、枚举法、交叉验证
2.计算每个点和聚类中心的距离
3.根据距离更新中心点位置
4.直到中心点不再变化
优点:
原理简单
结果容易解释
聚类结果好
缺点:
K值需要先指定
初始K值影响结果
只能识别球状类
计算量大
对异常值敏感,对离散值需要特殊处理
关联规则 Association Rule
反映事物与事物相互的依存和关联性
1.确定最小支持度,最小置信度
确定1项频繁项集
确定2项频繁项集
确定3项频繁项集
常见无监督学习算法
- 聚类算法
K均值(K-Means)
DBScan
最大期望(EM, Expectation Maximization)
降维:PCA(主成分分析), PLS(偏最小二乘回归), MDS(多维尺度分析)
…… - 关联规则
Apriori
Eclat
……
其他学习算法
- 半监督学习
训练数据有部分被标识,部分没有被标识。先学习数据的内在结构,再组织数据预测。 - 集成学习
针对同一数据集,训练多种学习器。
Bagging
有放回抽样构建多个数据集
训练多个分类器
最终结果各分类器结果投票得出
实现简单
Boosting
重复使用一类学习器来修改训练集
每次训练后根据结果调整样本权重
每个学习器加权后的线性组合即为最终结果
Stacking
由初级学习器和高级学习器组成
第一级学习器的输出为第二级学习器的输入