机器学习算法(一)——分类
机器学习算法(二)——回归
机器学习算法(三)——异常检测
一、应用场景
机器学习的算法选择大部分依赖于具体的问题类型和数据特征。下面是一些典型的场景以及对应的常用算法:
1.二元分类问题
当你的目标变量只有两个类别时,如垃圾邮件过滤(垃圾邮件/非垃圾邮件)、患者疾病诊断(疾病/健康)等。常用的算法包括逻辑回归、支持向量机、朴素贝叶斯、随机森林、梯度提升机等。
2.多元分类问题
当你的目标变量有超过两个类别时,如手写数字识别、新闻文章分类等。常用的算法包括K近邻、决策树、随机森林、梯度提升机、神经网络等。
3.回归问题
当你的目标变量是连续的数值时,如预测房价、预测销售额等。常用的算法包括线性回归、决策树回归、随机森林回归、梯度提升回归、神经网络回归等。
4.聚类问题
当你想将数据分为若干组,且这些组内的数据相似,组间的数据不同时,如用户行为分群、新闻文章分群等。常用的算法包括K-Means、层次聚类、DBSCAN、谱聚类等。
5.异常检测
当你需要在数据中检测出不符合预期或者与众不同的点时,如信用卡欺诈检测、工业设备故障检测等。常用的算法包括基于统计的异常检测、基于距离或者密度的异常检测如LOF(Local Outlier Factor)、孤立森林等。
6.推荐系统
当你想根据用户的历史行为或者属性来推荐物品时,如电影推荐、广告推荐等。常用的算法包括协同过滤(包括用户基于和物品基于)、矩阵分解、深度学习推荐模型等。
7.强化学习
当你需要让机器根据与环境的交互来学习最佳策略时,如游戏AI(如AlphaGo)、机器人导航等。常用的算法包括Q-learning、SARSA、Deep Q Network、Policy Gradient等。
请注意,选择最佳的机器学习算法通常需要进行多次试验和调整,以确定哪种算法在特定问题上表现最好。此外,特征工程的质量、模型参数的调整以及数据的预处理也将大大影响模型的性能。
二、模型评价
以下是各种机器学习任务常用的模型评价指标:
1.分类任务
对于二元或者多元分类任务,以下是一些常见的评价指标:
TP(True Positive)是真正类,即正确预测的正样本数;
TN(True Negative)是真负类,即正确预测的负样本数;
FP(False Positive)是假正类,即错误预测的正样本数(实际为负);
FN(False Negative)是假负类,即错误预测的负样本数(实际为正)。
- 准确率 (Accuracy):所有预测正确的样本数占样本总数的比例。
Accuracy = (TP + TN) / (TP + TN + FP + FN) - 精确率 (Precision):预测为正且预测正确的样本数占预测为正的样本总数的比例,是关注假阳性(被错误地标记为正类)的一个指标。
Precision = TP / (TP + FP) - 召回率 (Recall):预测为正且预测正确的样本数占真正正类样本总数的比例,是关注假阴性(被错误地标记为负类)的一个指标。
Recall = TP / (TP + FN) - F1 分数:精确率和召回率的调和平均值,适用于类别不平衡的情况。
F1 Score = 2 * (Precision * Recall) / (Precision + Recall) - AUC-ROC:ROC 曲线下的面积,反映的是分类器对样本的排序能力,即无论阈值设定为何值,总体上看分类器对样本的识别能力如何。
FPR = FP / (FP + TN)
TPR = TP / (TP + FN) - 混淆矩阵/classification_report:一个表格,用于描述分类模型的性能,表格中的每一行代表模型预测的类别,每一列代表实际的类别。
precision recall f1-score support
0 0.83 0.97 0.89 12770
1 0.99 0.94 0.96 41711
accuracy 0.95 54481
macro avg 0.91 0.95 0.93 54481
weighted avg 0.95 0.95 0.95 54481
-
KS值
KS值越大,表示模型能够将正、负客户区分开的程度越大。通常来讲,KS>0.2即表示模型有较好的预测准确性。 -
ROC曲线
ROC的全称是“受试者工作特征”(Receiver Operating Characteristic)曲线,用来评判分类、检测结果的好坏。 -
AUC值
AUC(Area Under Curve)就是ROC曲线下的面积大小,它能够量化地反映基于ROC曲线衡量出的模型性能。AUC的取值一般在0.5和1之间,AUC越大,说明分类器越可能把实际为正的样本排在实际为负的样本的前面,即正确做出预测。
2.回归任务
对于回归任务,常用的评价指标主要有:
- 均方误差 (MSE):预测值与真实值的平方差的平均值。
MSE = (1/n) * Σ(yi - ŷi)²
其中,n 是样本数量,yi 是实际值,ŷi 是预测值。这个指标度量了模型预测值和实际值的平均平方差异。
越接近 0 表示模型越好。 - 均方根误差 (RMSE):预测值与真实值的平方差的平均值的平方根。
RMSE = sqrt(MSE)
RMSE 是 MSE 的平方根。相比于 MSE,RMSE 的量纲和原始目标变量一致,因此更容易解释 - 平均绝对误差 (MAE):预测值与真实值之间的绝对值的平均值。
MAE = (1/n) * Σ|yi - ŷi|
MAE 表示的是模型预测值和实际值的平均绝对差异。MAE 相比于 MSE 或 RMSE,对于异常值不敏感。 - R-squared:解释变量能解释的因变量的变异程度。
R² = 1 - [ Σ(yi - ŷi)² / Σ(yi - ymean)² ]
其中,ymean 是 y 的平均值。R² 分数(也叫确定系数)度量的是模型预测的目标变量的方差占总方差的比例。
R² 值越接近 1,表示模型越好。
3.聚类任务
对于聚类任务,常用的评价指标主要有:
- 轮廓系数 (Silhouette Coefficient):一个样本与同簇的其他样本的距离的平均值和该样本与其他最近簇的样本的平均距离的比值。
- Davies-Bouldin Index:簇间的平均距离与簇内的平均距离的比值。
- Rand Index:所有样本对的正确分类与总样本对数的比值。
4.异常检测
对于异常检测任务,常用的评价指标主要有:
- Precision@k:在排名前 k 的样本中,真正的异常样本所占的比例。
- ROC-AUC:如上所述,ROC 曲线下的面积。
5.时间序列预测
对于时间序列预测任务,常用的评价指标主要有:
- 均方误差 (MSE):预测值与真实值的平方差的平均值。
- 均方根误差 (RMSE):预测值与真实值的平方差的平均值的平方根。
- 平均绝对误差 (MAE):预测值与真实值之间的绝对值的平均值。
- 平均绝对百分比误差 (MAPE):预测值与真实值之间的绝对百分比误差的平均值。
请注意,根据具体的应用场景和问题,这些评价指标的适用性可能会有所不同。你可能需要结合你的具体情况来选择最合适的评价指标。