【漫漫转码路】Day 42 机器学习 day02

模型训练及测试

将数据分为训练集和测试集,使用训练集构建模型,并用测试集评估模型,这种方式称为交叉验证
欠拟合:在训练集效果差
过拟合:在训练集效果好,在测试集效果差
分类算法中常用指标:
准确率(Accuracy):提取出的正确样本数/总样本数
召回率(Recall):正确的正例样本数/样本中的正例样本数 – 覆盖率
精准率(Precision):正确的正例样本数/预测为正例的样本数
F值:Precision*Recall* 2/ (Precision + Recall)(即F值为精准率和召回率的调和平均值)
混淆矩阵

真实值 预测正例 预测负例
正例 真正例(A) 假正例(B)
负例 假负例(C) 真负例(D)

Accuracy:(A+D)/(A+B+C+D)
Recall:A / (A+ B)
Precision:A / (A+ C)
数据类别不均衡的时候,Accuracy用处不大,应该是三个数据综合比较
F值是精准率和召回率的调和,两者任意比较小,则结果会小
如果是多种分类,比如三类1, 2, 3,那么可以将其中比较重要的一类作为正例,其余的视为负例,

Roc曲线

Roc曲线的横轴是“假正例率”,即FPR(False Positive Rate),纵轴是“真正例率”即TPR(True Positive Rate)
其中TPR就是Recall(召回率)
FPR就是C/(C+D)
其中(0,0)O点表示TPR和FPR都是0,也就是说正例完全没有被预测出来,正例和负例全部预测为负例,
(0,1)P点表示,FPR是0,TPR是1,此时所有正例和负例都被正确预测出来,是最理想的状态
(1, 0)Q点表示,FPR是1,TPR是0,此时所有正例全部预测成负例,此时的负例全部预测为正例,此时准确率Accuracy是0
(1, 1)M点表示,FPR是1,TPR是1,此时正例全部预测出来,此时的负例也全部预测为正例
ROC曲线表示的是一个概率,设置不同的阈值,导致的不同的混淆矩阵,形成不同的曲线
AUC值,表示右下角形成的图形的面积,AUC值越大,表示离P点的距离越近,模型的性能就越好
AUC值的取值范围是0.5到1
AUC值小于0.5时,可以反过来取值,就可以得到大于0.5的AUC值

回归结果度量

MAE:平均绝对误差
MSE:平均平方误差
R平方:负无穷到1之间
可解释方差的回归评分函数:
对于回归结果,最看重的是误差,就是y-预测值y

K近邻算法(KNN算法)

K近邻算法:找到最近的几个邻居的意思,有监督学习,既可以用于分类,又可以用于回归
做分类时,一般采用多数表决法
做回归时,采用平均值法
步骤1:从训练集合中获取K个离待预测样本距离最近的样本数据
步骤2:根据获取得到的K个样本数据来预测当前预测样本的目标属性值

第一步,将所有训练样本绘入特征空间中,将预测样本也绘入进去
第二步,计算待预测样本与训练样本的欧式距离,也就是特征空间两点之间的距离
第三步,将电影按照距离升序,

KNN三要素

K值的选择:K值选择比较小的时候,误差会减小,但是可能会发生过拟合,K值过大,可能误差会增大,但是会导致欠拟合,通过交叉验证来选择最优的K值
距离的度量:一般使用欧氏距离,(也有曼哈顿距离,余弦距离)
决策规则:分类中常用,多数表决法或加权多数表决法;回归中常用,平均值法或加权平均值法
加权多数表决法:距离越近,权重越大,通常会将所有样本的权重和设置为1,距离的倒数,除以所有权重和(归一)
加权平均值法:(一定要把权重归一)
如果关键特征的量纲不同意,有必要进行特征标准化
KNN模型参数就是所有训练样本

KNN算法实现

蛮力实现:当数据样本过多的时候,求取距离的时候,所需要的时间较多
K-D树:首先对训练数据进行建模,构建K-D树,然后再根据建好的模型来获取邻近样本数据

K-D树

m个样本的n维特征中,分别计算n个特征取值的方差,选择方差最大的特征作为根节点,然后找到该特征的中位数,以该中位数为分界点,向下二分,大于中位数为右,小于中位数为左,然后在各自的节点再次二分

你可能感兴趣的:(转码,人工智能,深度学习,改行学it,算法)