评估模型 Evaluate the model
什么样的模型是一个好模型?
-
准确率 Accurate
模型预测的准确程度
-
可解释性 Interpretable
我们是如何做出预测的
-
速度
建立模型需要多长时间,模型预测需要多长时间
-
可扩展性
如果我们使用大量的数据进行预测,我们需要等待多长时间
奥卡姆剃刀:在同样能够解释已知观测现象的假设中,我们应该挑选最简单的那一个
泛化:在未观测到的输入上表现良好 的能力
过拟合(Overfitting) 欠拟合(Underfitting)
过拟合模型在训练数据上表现完美,但无法对新数据也就是测试数据进行良好的预测。它具有低的训练误差,但具有高的测试误差。
欠拟合模型无法捕获数据中的重要特征,在训练数据上表现不佳,一般为模型过于简单.

降低过拟合的方法
-
收集更多数据
-
降低模型复杂度
-
正则化方法 例如L1 L2正则化方法
-
集成学习方法,例如 Bagging
降低欠拟合的方法
- 添加新特征
- 增加模型复杂度
- 减小正则化系数
模型数据如何划分
Hold-out validation
我们将data数据分割成3个部分,训练集、验证集、测试集

K-fold cross validation

Leave-one-out cross validation
留一法是K-fold 的特殊情况,k=n,其中n是集合中数量点的数量。是k-flod的极端情况。
如何选择

模型评估指标
不同的机器学习分类有不同的评估指标,

分类模型
Accuracy 准确率
准确率是正确预测与评估样本总数之比.
准确率是分类问题中最简单的评价指标,不过有着明显的缺陷,比如说在预测癌症患者时,样本中只有1%的病人时癌症患者,其他99%的患者没有癌症,也较少负样本占99%时。
模型A总是预测为无癌症,准确率有99%
模型B的准确率时75%,它准确的预测了某些癌症类别。
Confusion matrix

Accuracy Presscision Recall
精确率是指分类正确的正样本个数占分类器判定为正样本个数的比例。
召回率是指分类正确的正样本个数占真正的正样本个数的比例。

通常精准率和召回率直接存在反比关系,所以你要根据模型业务类型权衡精准率和召回率,比如癌症预测和垃圾邮件检查。

怎么样通过精准率和召回率选择好的算法。
F1 score是一个很好的办法去评估模型。它结合了精准率和召回率

ROC Curve
ROC 曲线绘制的是分类问题TP和FP的关系图,Receiver Operatiing Characteristie Curve,中文称为“受试者工作特征曲线”

AUC Curve (area under the curve)
AUC指的是ROC曲线下的面积大小。
使用AUC指标,您可以快速比较多个学习模型。比较时两种模型,无论阈值如何,AUC越高的模型越好.与准确性,准确性,召回率和F1得分的统计指标相比,AUC的阈值独立性使其成为唯一可用于模型选择的条件。
另一方面,与准确性,准确性,召回率和F1得分不同,AUC不会告诉我们对于给定的阈值设置,该模型可以期待什么性能,也无法使用确定阈值的最佳值。 在这方面,它并不能消除其他统计指标的需求
AUC = 1 模型可能过拟合。

回归模型
Mean Absolute Error (MAE)
MAE是所有数据点的实际值和预测值的绝对查的平均和。分数越小,模型越好。

Mean Square Error (MSE)
MSE测量所有数据点的实际值与预测值之间的差异的平方和的平均。由于是平方,大的误差会比小的误差影响大。分数越小模型越好。

Root Mean Square Error (RMSE)
RMSE是用于回归问题的最受欢迎的评估指标。RMSE受异常值影响较大。分数越小模型越好。

Mean Absolute Percentage Error (MAPE)
MAPE(平均绝对百分比误差)以百分比形式衡量误差的大小,当数据没有极端值(包括零)时,MAPE的功能最佳。MAPE相当于把每个数据点的误差进行归一化处理,降低了离群点代理的绝对误差影响。

r && && adjust
r相关系数-评估两个变量直接的线性关系

R平方越高,模型对数据的拟合越好

问题1:
每次将预测变量添加到模型中时,即使仅由于偶然性,R平方也会增加。 它永远不会减少。 因此,具有更多项的模型可能会因为具有更多项而看起来具有更好的拟合度。
问题2:
如果模型的预测变量过多且多项式较高,则它将开始对数据中的随机噪声建模。 这种情况称为过拟合模型,它会产生令人误解的高R平方值,并且降低了进行预测的能力1
调整后的R2是校正后的线性模型拟合优度(模型准确性)的指标1。 调整后的R平方对包含无意义变量的模型进行了惩罚。 如果您向模型添加越来越多的无用变量,则调整后的r平方将减少。 如果您添加更多有用的变量,则调整后的r平方将增加

Bias && Variance
偏差反映的是模型在梯度上的输出与真实值之间的误差,即模型本身的精准度
方差反映的是模型每一次输出结果与模型输出期望平均值之间的误差,即模型的稳定性。

偏差和方差的权衡
-
偏差和方差直接通常需要权衡,通常减少一个,另一个就增加
-
选择一种平衡两种误差的模型以最大程度的减少总误差。

- 如果你的模型在训练集上表现的确实非常好,但在测试集上却差很多,那么它的方差就很大,也就是过拟合
- 如果在训练集和测试集上都表现不佳,那就存在较大的偏差

判断模型是否有偏差和方差
使用交叉验证集诊断是否有偏差或方差问题
如何解决方差和偏差

高偏差
-
训练一个更复杂的模型,或者尝试另外一个模型,更复杂的模型意味着更多的计算开销,并且模型很难解释
尝试其他模型或者其他架构的模型
更复杂的模型,例如神经网络中更大模型
-
在输入中增加更多的特征
-
使用更好的优化算法,例如Adam
-
超参数搜索
-
使用集成算法,例如Boosting

高方差
- 收集更多样本
- 使用正则化
- 减少特征
- 尝试减小模型的复杂度
- 超参数搜索
Regularization
L1 regularization 使用了一个L1范数的惩罚项
lost function:
Gradient:
Update:
L2 regularization:
lost function:
Gradient:
Update:
L2 参数每次更新的时候都会乘以一个小于1的数,所以参数会越来越小,接近于0
区别:
L1在依赖稀疏特征的模型中,L1正则化有助于将不相关或几乎不相关的特征的权重驱动为恰好为0,从而将这些特征从模型中删除。
L2正则化有助于将离群权重(具有较高的正值或较低的负值的那些值)驱使为接近0但不太接近0。L2正则化总是可以改善线性模型的泛化

超参数

超参数是在训练算法开始之前指定的,无法在训练算法本身内部进行优化。 它们在模型外部。
•它们通常用于流程中以帮助估计模型参数。
•无法根据数据进行估算。
•它们通常由从业者指定。
•他们在训练期间通常不会改变。
参数
模型的参数是您选择的机器学习技术用来调整数据的变量。 它们在模型内部。
•模型在进行预测时是必需的。
•它们是从数据估计或学习的。
•他们通常不是手动设置的。
•通常通过学习算法来选择值,例如线性回归或神经网络中的权重
•他们在训练期间发生变化。

常用的超参数优化算法:

参考:Getting Started With MachineLearning (all in one)_V0.96.pdf