机器学习引入
机器学习步骤:
- 问题(模型参数w)
- 训练(不断训练参数w的取值)
- 模型(得到模型)
- 分类/判别
- 结果
深度学习引入
Deep learning是一种实现机器学习的技术,是机器学习重要的分支。其源于人工神经网络的研究。深度学习模型结构是一种含多隐层的神经网络。通过组合底层特称形成更加抽象的高层特征。
数据集及其拆分
数据集的定义
数据集在数学上通常表示为的形式:{( x 1 x_1 x1, y 1 y_1 y1),( x 2 x_2 x2, y 2 y_2 y2),…( x i x_i xi, y i y_i yi)}。
- 其中 x i x_i xi为样本特征。样本特征一般有多个,所以 x i x_i xi= { x i 1 , x i 2 , … , x i n } T \left\{ x_{i}^1,x_{i}^{2},\ldots ,x_{i}^{n}\right\} ^{T} {xi1,xi2,…,xin}T。
- y i y_i yi表示样本i的类别标签
tips: 通俗的点解释,相当于一只宝可梦有多种属性,每个属性有对应的特征值。
类别标签的ground truth与gold standard
ground truth: 表示通过直接观察收集到的真实结果。
gold standard:可翻译为金标准。医学上一般指诊断疾病公认的最可靠的方法。
tips:在机器学习领域,更倾向于使用“ground truth” 。而如果用 gold standard这个词,则表示其可以很好地代表ground truth。
数据集与有监督学习
- 有监督学习中数据通常分为训练集,测试集两部分
训练集:用来训练模型,即被用来学习得到系统参数取值
测试集:用于最终报告模型的评价结果,因此在训练阶 - 有时对训练集做进一步划分为训练集和验证集(validation
set)。验证集与测试集类似,也是用于评估模型的性能。区别是验证集主要用于模型选择和调整超参数,因而一般不用于报告最终结果。
训练集、测试集的拆分
留出法( Hold‐Out Method ):
- 将数据随机分为两组,一组做为训练集,一组做为测试集
- 利用训练集训练分类器,然后利用测试集评估模型,记录最后的分类准确率为此分类器的性能指标
优点:划分简单。缺点:在测试集上的预测性能的高低与数据集拆分情况有很大的关系。
K折交叉验证
- 数据集被分成K份(K通常取5或者10)
- 不重复地每次取其中一份做测试集,用其他K‐1份做训练集训练,这样会得到K个评价模型
- 将上述步骤2中的K次评价的性能均值作为最后评价结果
分层抽样策略(Stratified k‐fold)
- 将数据集划分成k份,特点在于,划分的k份中,每一份内各个类别数据的比例和原始数据集中各个类别的比例相同
用网格搜索来调超参数(一) - 什么是超参数?指在学习过程之前需要设置其值的一些变量,而不是通过训练得到的参数数据。如深度学习中的学习速率等就是超参数。
- 什么是网格搜索?
- 假设模型中有2个超参数:A和B。 A的可能取值为{a1, a2, a3},B的可能取值为连续的,如在区间[0‐1]。由于B值为连续,通常进行离散化,如变为{0, 0.25, 0.5, 0.75, 1.0}
- 如果使用网格搜索,就是尝试各种可能的(A, B)对值,找到能使的模型取得最高性能的(A, B)值对。
用网格搜索来调超参数(二)
- 确定评价指标
- 对于超参数取值的每种组合,在训练集上使用交叉验证的方法求得其K次评价的性能均值;
- 最后,比较哪种超参数取值组合的性能最好,从而得到最优超参数的取值组合。
分类及其性能度量
- 分类问题是有监督学习的一个核心问题。分类解决的是要预测样本属于哪个或者哪些预定义的类别。此时输出变量通常取有限个离散值。
- 分类的机器学习的两大阶段:1)从训练数据中学习得到一个分类决策函数或分类模型,称为分类器(classifier);2)利用学习得到的分类器对新的输入样本进行类别预测。
- 两类分类问题与多类分类问题。多类分类问题也可以转化为两类分类问题解决,如采用一对其余(One-vs-Rest)的方法:将其中一个类标记为正类,然后将剩余的其它类都标记成负类。
分类性能度量—准确率
-
假设只有两类样本,即正例(positive)和负例(negative)。通常以关注的类为正类,其他类为负类。
-分类准确率(accuracy):分类器正确分类的样本数与总样本数之比: a c c u r a c y = T P + T N p + N accuracy = \dfrac{TP+TN}{p+N} accuracy=p+NTP+TN -
精确率(precision): p r e c i s i o n = T P T P + F P precision = \dfrac{TP}{TP+FP} precision=TP+FPTP(反映了模型判定的正例中真正正例的比重)
-
召回率(recall): r e c a l l = T P p recall = \dfrac{TP}{p} recall=pTP(反映了总正例中被模型正确判定正例的比重)
分类性能度量—P‐R曲线
- 要得到P‐R曲线,需要一系列Precision和Recall的值。这些系列值是通过阈值来形成的。对于每个测试样本,分类器一般都会给了“Score”值,表示该样本多大概率上属于正例
- 步骤
- 从高到低将“Score”值排序并依此作为阈值threshold;
- 对于每个阈值,“Score”值大于或等于这个threshold的测试样本被认为正例,其它为负例。从而形成一组预测数据
- 算出精确率和召回率绘制曲线
分类性能度量‐‐F值
-
F值是精确率和召回率的调和平均: F β − s c o r e = 1 + β 2 ∗ p r e c i s i o n ∗ r e a 11 β 2 ∗ p r e c i s i o n + r e c a l l F_{\beta }-score = \dfrac{1+\beta ^{2}\ast precision\ast rea11}{\beta ^{2}\ast precision+recall} Fβ−score=β2∗precision+recall1+β2∗precision∗rea11
-
𝛽一般大于0。当𝛽=1时,退化为F1( 即表示二者同等重要)
分类性能度量‐‐ROC
- 横轴:假正例率: f p r a t e = F P N f_{prate}=\dfrac{FP}{N} fprate=NFP
- 纵轴:真正例率:
t
p
r
a
t
e
=
T
P
P
t_{prate}=\dfrac{TP}{P}
tprate=PTP
- 步骤和P-R曲线绘制方法一样
回归问题及其性能评价
-
什么是回归?
- 回归分析(regression analysis)是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。
- 和分类问题不同,回归通常输出为一个实数数值。而分类的输出通常为若干指定的类别标签。 -
常用的评价回归问题的方法
- 平均绝对误差MAE(mean_absolute_error) - 均方误差MSE (mean_squared_error)及均方根差RMSE - Log loss,或称交叉熵loss(cross‐entropy loss) - R方值,确定系数( r2_score)
-
平均绝对误差MA
M A E ( y , y ^ ) = 1 n s a m p l e s ∑ i = 0 n s a m p l e s − 1 ∣ y i − Y ^ i ∣ . \begin{aligned}MAE\left( y,\widehat{y}\right) =\dfrac{1}{nsamples}\sum ^{nsamples-1}_{i=0}\left| y_{i}-\widehat{Y}_{i}\right| \\ .\end{aligned} MAE(y,y )=nsamples1i=0∑nsamples−1∣∣∣yi−Y i∣∣∣. -
均方差MSE
M S E ( y , y ^ ) = 1 n s a m p l e s ∑ i = 0 n s a m p l e s − 1 ∣ y i − Y ^ i ∣ 2 \begin{aligned}MSE\left( y,\widehat{y}\right) =\dfrac{1}{nsamples}\sum ^{nsamples-1}_{i=0}\left| y_{i}-\widehat{Y}_{i}\right|^{2} \\ \end{aligned} MSE(y,y )=nsamples1i=0∑nsamples−1∣∣∣yi−Y i∣∣∣2
-均方根差RMSE: 是MSE的平方根
logistic回归损失(二类)
- 简称Log loss,或交叉熵损失(cross‐entropy loss)
- 对于二类分类问题:
- 假设某样本的真实标签为y (取值为0或1),概率估计p = pr(y = 1)
- 每个样本的log loss是对分类器给定真实标签的负log似然估计(negative log‐likelihood):
log ( y , p ) = − log ( p r ( y ∣ p ) ) = − [ y / u g ( p ) + ( 1 − y ) log ( 1 − p ) ) \log \left( y,p\right) =-\log \left( pr\left( y| p\right) \right) =-[ y/ug\left( p\right) +\left( 1-y\right) \log \left( 1-p\right) ) log(y,p)=−log(pr(y∣p))=−[y/ug(p)+(1−y)log(1−p))
logistic回归损失(多类)
一致性的评价方法
假设两评委(rater)对5部电影的评分如下,则二者的一致如何?
rater1 = [0.5, 1.6, 2.5, 2.5, 2.4]
rater2 = [1.5, 2.6, 3.5, 3.5, 3.4]
-
皮尔森相关系数法
- 用来衡量两个用户之间兴趣的一致性
- 用来衡量预测值与真实值之间的相关性
- 既适用于离散的、也适用于连续变量的相关分析
公式: f X , Y = c o v ( X , Y ) σ x σ Y = E [ ( X − μ x ) ( Y − μ y ) ] σ X σ Y f_{X,Y}=\dfrac{cov\left( X,Y\right) }{\sigma _{x}\sigma _{Y}}=\dfrac{E\left[ \left( X-\mu _{x}\right) \left( Y-\mu _{y}\right) \right] }{\sigma_{X} \sigma _{Y}} fX,Y=σxσYcov(X,Y)=σXσYE[(X−μx)(Y−μy)]
( c o v ( X , Y ) cov\left( X,Y\right) cov(X,Y)表示𝑋 和𝑌之间的协方差。 σ \sigma σ表示均方差。 μ \mu μ表示均值。E表示数学期望)
-
取值区间为[‐1,1]。 ‐1: 完全的负相关,+1: 表示完全的正相关,0:没有线性相关
‐Cohen’s kappa 相关系数
- 与pearson相关系数的区别:Cohen‘s kappa 相关系数通常用于离散的分类的一致性评价。
- 其通常被认为比两人之间的简单一致百分比更强壮,因为Cohen‘skappa考虑到了二人之间的随机一致的可能性。