自学机器学习系列——1 机器学习基本框架
时间:2023-09-10 07:37:02
基本的机器学习框架
- 1 机器学习的基本思路
-
- 1.1 模型选择
- 1.2 模型评价
- 2 常用的机器学习方法
-
- 2.1 广义线性模型
- 2.2 线性判别分析和二次判别分析
- 2.3 支持向量机
- 2.4 决策树和随机森林
- 2.5 神经网络和深度学习
- 2.6 KNN
- 2.7 聚类
- 2.8 降维
1 机器学习的基本思路
- 介绍机器学习的基本框架: 数据采集、特征提取、数据转换、模型培训、模型选择、模型评价
- 监督学习:给出原始特征和问题标签,挖掘规则,学习模式,回答新问题
- 无监督学习:只根据原始特征寻找模式
- 强化学习:没有绝对正确的标签来最大化回报,也没有寻找数据结构的特征
1.1 模型选择
- 如何选择模型参数?交叉验证
- 一般回归问题:尽量减少平均误差
- 过拟合:方差随模型复杂度的上升而上升,偏差随模型复杂度的上升而下降,均方误为U型 -
- 交叉验证:
- 最简单的方法是选择一定比例的训练集作为验证集,但不参与模型训练,降低准确性
- 通常采用K折交叉验证的方法,然后将所有样本分为K部分(3-20).每次使用其中一部分作为验证集, 重复K次,直到所有部分都被验证。
1.2 模型评价
- 回归问题:均方误
- 分类问题:正确率 - 命中(1,1) 虚报(1,0) 漏报 (0,1) 正确拒绝(0,0) 1表示生病,0表示无病
- 正确率:(命中 正确拒绝)/总数 发病率特别低时失效
- 精确率: 命中/(命中 虚报)
- 命中率: 命中/(命中 漏报)
- 虚报率: 虚报/(虚报 正确拒绝)
- ROC
- AUC
2 常用的机器学习方法
- 监督学习:广义线性模型、线性分析、支持向量机、决策树、随机森林、神经网络、K近邻
- 无监督学习:聚类、降维:PCA
2.1 广义线性模型
- 简单回归:单因子
- 多元回归:多因素
- 岭回归:L2正则化
- Lasso : L1正则化
- 逻辑回归:二分类问题,改进线性概率模型
- 有序多分类:多分类问题,由于变量的顺序,拟合N-1个逻辑回归
- OvR:one vs rest 将样本分为N个逻辑回归两类,分别获得每个单个类别的概率
2.2 线性判别分析和二次判别分析
- 逻辑回归不适合两类相距较远的情况
- LDA:线性判断分析,逻辑回归扩展,认为样本满足正态分布,使用样本矩估计系数
- QDA:判别方程为二次函数,分界为曲线
2.3 支持向量机
- 用一个超平面划分样本空间:用超级大的一张纸将空间分为两部分
- 这平面仅由有限点决定,称为支撑向量
- 异或门问题:输出1只有输入(1,0)(0,1),直线不能分类
- 升维,如回归引入x1*x二、泰勒展开等方式
- SVM超平面计算引入核函数, 线性核、多项核、高斯核
2.4 决策树和随机森林
- 决策树:每层节点通过一定的规则分为多个节点,终端的叶节点是分类结果
- 分类特征的选择:分裂后的信息增益最大化 sum(-plogp)
- 避免过拟合:剪枝、分支停止法
- C4.5算法:只能用于分类,不能组合特征
- CART算法: 每个节点只能分为两个子节点,支持特征组合
- 优点:训练速度快,解决非数值特征,非线性分类
- 缺点:不稳定,对训练样本敏感,容易过拟合
- 集成方法
- Bootstrap :放回抽样得到等样本长的样本Bootstrap数据集,N次,每个数据集训练弱分类器。
- Bagging :基于Bootstrap方法是投票多个弱分类器,最终分类平均值
- 并行方法:Bagging——随机森林,采样Bootstrap数据集,随机选择选择m个特征进行采样,最N个决策树进行投票分类
- 串行方法:AdaBoost——梯度提升决策树:GBDT,原始数据训练得到弱分类器,分类错误样本增加重量,继续训练
2.5 神经网络和深度学习
- 基本思想:神经元有兴奋和抑制两种状态,树突会受到上一个神经元的刺激,只有电位达到一定阈值,神经元会激活到兴奋状态,然后电信号沿轴突和突触继续传递到下一个神经元树突,从而形成一个巨大的网络
- 输入层:线性加权
- 隐藏层:激活函数,ReLu,sigmoid,tanh
- 输出层:分类softmax、sigmoid,回归相等
- 层数太深:参数难以估计,梯度消失,卷积神经网络CNN(局部连接)
- 图像识别:CNN
- 时间序列问题归神经网络RNN长短记忆网络LSTM
- 非监督学习:生成对抗网络GAN
2.6 KNN
- 监督学习
- 以上分类都是基于假设:如果两个样本特征相似,则属于相同的分类
- 基于这一思想,制定新的分类规则:每个点对应的类别应由周围最相邻的K邻居类别决定
- K确定值:太小太拟合,太大欠拟合,交叉验证
2.7 聚类
- 无监督学习:将样本分为K个簇,将相似对象分成一个簇。
- K-means
- 随机确定K点作为纹理,为每个样本点找到最近的纹理,并分配给相应的簇
- 选择每个簇的平均值作为新的质点,更新簇中的样本点,获得第一次迭代结果
- 不断重复上述过程,直到簇不再改变
- 缺点:受K值影响大,受异常值影响,收敛缓慢
- 层次聚类:自上而下分解样本层次,或自下而上合并
- 谱聚类:每个对象被视为图的顶点V,顶点之间的相似度等于连接边缘E的权值,并获得基于相似度的无向加权图G(V,E)
2.8 降维
- PAC:
- 假设变量变化较大的部分可以在变量处获得较大的响应
- 作为一个新的特征,数据需要标准化才能在空间中找到最大的变化方向
- 如何确定特征数,交叉验证
- 偏最小二乘法:
- 当PAC假设不成立,寻找特征与变量的密切关系来确定新的特征
- X尽可能用显著的系数获得Y线性回归的回归系数Z1
- X对Z做线性回归,得到的残差不能由Z解释的部分作为新特征
- Y线性回归系数的新特征,线性组合Z2
- 重复上述过程M次
- Fisher线性判别分析:
- 核心思路:样本类内间距最小,类间距最大
- 中心计算两种数据
- 计算两种数据的离散度矩阵(类内)总离散度矩阵S
- 计算类间离散度矩阵Sb
- 希望投影到wx上类间距w’Sbw尽可能大,类内距离w’Sw尽可能小,所以优化w’Sbw/w’Sw
- 得到投影后的特征
- 局部线性嵌入LLE
- 测地距离isomap
- 拉普拉斯特征映射