机器学习算法总结
机器学习分类:
监督学习 非监督学习
离散 分类 聚类
连续 回归 降维
(一)有监督的机器学习
1.KNN(k-近邻算法)————分类
(1)三要素:距离度量、k值的选择、分类决策规则
(2)算法思想:给定测试实例,基于某种距离度量找出训练集中与其最靠近的k个实例点,然后基于这k个最近邻的信息来进行预测。
2.决策树 ————分类
(1)策略:自上而下
(2)算法思想:
步骤1:将所有的数据看成是一个节点(根节点),进入步骤2;
步骤2:根据信息增益(ID3)/信息增益率(C4.5)/基尼指数(CART),从所有属性中挑选一个对节点进行分割,进入步骤3;
步骤3:生成若干个子节点,对每一个子节点进行判断,如果满足停止分裂的条件,进入步骤4;否则,进入步骤2;
步骤4:设置该节点是叶子节点,其输出的结果为该节点数量占比最大的类别。
(3)在决策树基本算法中,有三种情形会导致递归返回:
1) 当前结点包含的样本全属于同一类别,无需划分;
2) 当前属性集为空,或是所有样本在所有属性上取值相同,无法划分;
3) 当前结点包含的样本集合为空,不能划分。
3.朴素贝叶斯(NB)————分类
(1)思想:P(类别|特征)=P(特征|类别)*P(类别)/P(特征)
4. 逻辑回归(logistics regression)————分类(用回归的方法解决分类问题)
(1)思想:回归的方法解决分类问题
(2)函数:sigmod函数(该函数具有很强的鲁棒性,将函数的输入范围从(-∞,+∞),映射到了(0,1)而且具有概率意义)
p(x)=1/(1+e-x)
5.支持向量机(SVM)————分类
(1)寻找最大间隔
(2)SMO高效优化算法
(3)核函数
https://cuijiahua.com/blog/2017/11/ml_8_svm_1.html
6.AdaBoost算法————分类
(1)算法思想:AdaBoost是Boosting方法中最优代表性的提升算法。该方法通过在每轮降低分对样例的权重,增加分错样例的权重,使得分类器在迭代过程中逐步改进,最终将所有分类器线性组合得到最终分类器。
(2)算法过程:
1)给训练样本初始化一个相等的权重
2)训练弱分类器,并计算分类器的错误率
3)重新调整每个样本的权重,第一次分对的样本权重降低,分错的样本权重增加
4)重复步骤(2)m次
5)为每个分类器分配一个权重值alpha
6)将所有的分类器输出的结果并加权求和,得到最终的输出结果。
(二)无监督的机器学习
1.K-means算法————聚类
(1)算法过程;
1)随机在图中取K(这里K=2)个种子点。
2)然后对图中的所有点求到这K个种子点的距离,假如点Pi离种子点Si最近,那么Pi属于Si点群。
3)我们要移动种子点到属于他的“点群”的中心。
4)然后重复第2)和第3)步,直到,种子点没有移动。
2.Apriori算法
(1)算法过程
1)找到所有的频繁1项集
2)扩展频繁(k-1)项集得到候选k项集
3)剪除不满足最小支持度的候选项集
4) 满足最小支持度和最小置信度的两项具有强关联规则
3.FP-growth
(1)算法过程:
1) 扫描事务数据库D一次,得到频繁项的集合F及它们的支持度。将F按支持度降序排列成L,L是频繁项的列表。
2)创建FP树的根,标注其为NULL。对D中的每个事务进行一下操作:
3)建树,从树中找到条件模式基,条件FP树,以及产生的频繁模式。
(2)算法实例
https://blog.csdn.net/baixiangxue/article/details/80335469