前言
本文主要简述10种传统机器学习算法
算法总览
机器学习的传统过程是收集数据,数据预处理,人工设计特征,分类器分类,评价
类别 | Value |
---|---|
监督学习 | k邻近算法,朴素贝叶斯,线性回归,逻辑回归,决策树,支持向量机,人工神经网络 |
无监督学习 | k-means,最大期望算法,高斯混合模型 |
k邻近算法
k邻近算法是根据一个原则:物以类聚,人以群分。预测样本类别是统计该样本附近邻居的类别决定。举个例子,判断某个人是否喜欢吃橙子,看他周围三个的喜好,来判断。邻居数量就是这里的k。k=1,只有一个人决定,太武断,容易过拟合;k=1000,人数太多,这1000人中大多已经不是邻居了,会造成很大的偏差。
预处理:(x-min)/(max-min)
缺陷:维数增加后,导致距离计算量过大;样本不均衡,倾向于大样本的标签;
改进:计算的问题-减少特征数量(决策树,随机森林,主成分分析);样本和属性不均衡,数量少者,引入大权重。建索引表,建树。
朴素贝叶斯
基于全概率公式,数数(连续则使用高斯分布计算)
改进:半朴素贝叶斯(考虑同组属性之间的依赖关系),树增强贝叶斯(不同组的依赖关系),贝叶斯网络(更深的依赖关系)
线性回归,逻辑回归
数值迭代方法:梯度下降法
决策树
举个例子:相亲分三六九等,对方根据你的收入,年龄,学历,是否买房,是否买车等属性,逐渐减少疑虑,做出决断。
决策树通过信息熵来衡量这种不确定性
ID3决策树(计算信息增益),C4.5决策树(前者基础进一步除以分类信息值,防止决策偏向),CART(GINI不纯度)
过拟合:剪枝,剪枝分前后(CCP误差增加,REP错误率-新数据)
支持向量
SVM实现了结构分险最小化,将输入映射到高维空间,寻找超平面分割数据,通过核函数取代内积运算,构造决策函数。主要是通过拉格朗日函数结合KKT条件,微分求极值,SMO算法解 α \alpha α,核函数的选择也很玄学。
人工神经网络
去看深度学习,主要就是会反向传播
k-means
不断解中心点,移动到稳定
EM算法
从不完全数据,构造下界,优化下界,最大化似然
高斯混合模型
假设数据有多种高斯分布混合,参数为权重,每个高斯分布的均值和方差(协方差矩阵的形式以及是否共享)求解用到EM算法,协方差矩阵病态(正则化)
后记
这个系列是随笔,正篇再说,应该写不到100篇