什么是机器学习?
参考了网络上的各家说法,一句话概括就是数据学习,机器决策(对应输入和输出)。
机器学习通常解决分类,回归等问题。
1 分类算法&机器学习
一张图概括分类算法流程
- 原始数据集
- 探索性数据分析
- 数据预处理
- 数据分割(训练和测试)
- 算法建模
- 选择机器学习任务
- 模型结果评估
1.1 数据集
数据集本质上是一个M*N矩阵(N由X变量和Y标签变量组成)
1.2 数据分析
EDA做的是去了解数据,知道数据分布,通过图表对数据做直觉分析。通用的EDA三大方法包括
- 描述性统计:av,mean,模式,标准差
- 数据可视化:热力图(辨别特征内部相关性)、箱形图(可视化群体差异)、散点图(可视化特征之间的相关性)、主成分分析(可视化数据集中呈现的聚类分布)等。
- 数据整形:对数据进行透视、分组、过滤等。
1.3 数据预处理
对数据做检查和校正
数据的质量将对机器学习算法模型的质量好坏产生很大的影响。因此,为了达到最好的机器学习模型质量,传统的机器学习算法流程中,其实很大一部分工作就是在对数据进行分析和处理。
一般来说,数据预处理可以轻松地占到机器学习项目流程中80%的时间,而实际的模型建立阶段和后续的模型分析大概仅占到剩余的20%。
1.4 数据分割
训练和测试8:2
1.5 算法建模
机器学习算法可以大致分为以下三种类型之一:
- 监督学习:是一种机器学习任务,建立输入X和输出Y变量之间的数学(映射)关系。这样的(X、Y)对构成了用于建立模型的标签数据,以便学习如何从输入中预测输出。
- 无监督学习:是一种只利用输入X变量的机器学习任务。X变量是未标记的数据,学习算法在建模时使用的是数据的固有结构。
- 强化学习:是一种决定下一步行动方案的机器学习任务,它通过试错学习(trial and error learning)来实现这一目标,努力使reward回报最大化。
参数调优(入门能做的)
传说中的调参侠主要干的就是这个工作啦。超参数本质上是机器学习算法的参数,直接影响学习过程和预测性能。由于没有万能的超参数设置,可以普遍适用于所有数据集,因此需要进行超参数优化。
特征选择
从大量特征中选择重要的特征子集。特征选择的任务本身就可以构成一个全新的研究领域,在这个领域中,大量的努力都是为了设计新颖的算法和方法。从众多可用的特征选择算法中,一些经典的方法是基于模拟退火和遗传算法。除此之外,还有大量基于进化算法(如粒子群优化、蚁群优化等)和随机方法(如蒙特卡洛)的方法。
机器学习任务
-
分类
一个训练好的分类模型将一组变量作为输入,并预测输出的类标签。可视化图可以通过执行PCA分析并显示前两个主成分(PC)来创建;或者也可以选择两个变量的简单散点图可视化。 -
性能指标
如何知道训练出来的机器学习模型表现好或坏?就是使用性能评价指标(metrics),一些常见的评估分类性能的指标包括准确率(AC)、灵敏度(SN)、特异性(SP)和马太相关系数(MCC)。 -
回归
Y = f(X)。其中,Y对应量化输出变量,X指输入变量,f指计算输出值作为输入特征的映射函数(从机器学习模型中得到)。
评估回归模型性能的常用指标是确定系数(R²)。此外,均方误差(MSE)以及均方根误差(RMSE)也是衡量残差或预测误差的常用指标。