机器学习系统设计及算法评估

1. 数据集分类

数据集分为训练集(training set),交叉验证集(cross validation set),测试集(test set)。比例为60:20:20。
使用训练集对模型进行训练,得到使训练集误差 J t r a i n ( θ ) J_{train}(\theta) Jtrain(θ)最小的一系列参数 θ \theta θ,然后代入验证集,得到使验证集误差 J c v ( θ ) J_{cv}(\theta) Jcv(θ)最小的模型,最后代入测试集,得到该模型的误差 J t e s t ( θ ) J_{test}(\theta) Jtest(θ)。为什么不直接使用 J c v ( θ ) J_{cv}(\theta) Jcv(θ)作为该模型的误差?使用 J t e s t ( θ ) J_{test}(\theta) Jtest(θ)具有公平性,而使用 J c v ( θ ) J_{cv}(\theta) Jcv(θ)得到的肯定是该模型这组数据的最小值,不具有普遍意义。

2. 模型选择

2.1. 选择合适的二项式次数

在进行特征选择的时候,需要选择特征值的多少次幂。将特征值的不同次幂作为不同的模型,如:
model 1: θ 0 + θ 1 x \theta_0+\theta_1x θ0+θ1x
model 2: θ 0 + θ 1 x + θ 2 x 2 \theta_0+\theta_1x+\theta_2x^2 θ0+θ1x+θ2x2
model 3: θ 0 + θ 1 x + θ 2 x 2 + θ 3 x 3 \theta_0+\theta_1x+\theta_2x^2+\theta_3x^3 θ0+θ1x+θ2x2+θ3x3

model n: θ 0 + θ 1 x + θ 2 x 2 + . . . + θ n x n \theta_0+\theta_1x+\theta_2x^2+...+\theta_nx^n θ0+θ1x+θ2x2+...+θnxn
将这些模型利用训练集,验证集得到每个模型的误差 J c v ( θ ) J_{cv}(\theta) Jcv(θ)。其误差曲线如下:
mierror
可以得到:

  1. J c v ( θ ) J_{cv}(\theta) Jcv(θ)很大, J t r a i n ( θ ) ≈ J c v ( θ ) J_{train}(\theta)\approx J_{cv}(\theta) Jtrain(θ)Jcv(θ)时,此时处于高偏差,欠拟合的状态。
  2. J c v ( θ ) J_{cv}(\theta) Jcv(θ)很大, J t r a i n ( θ ) J_{train}(\theta) Jtrain(θ)很小时,此时处于高方差,过拟合的状态。
2.2. 选择合适的正则化参数 λ \lambda λ

J ( θ ) = 1 2 m ∑ i = 1 i = m ( h θ ( x ( i ) ) − y ( i ) ) 2 + λ 2 m ∑ i = 1 i = m θ i 2 J(\theta)=\frac{1}{2m}\sum_{i=1}^{i=m}(h_{\theta}(x^{(i)})-y^{(i)})^2+\frac{\lambda}{2m}\sum_{i=1}^{i=m}\theta_i^2 J(θ)=2m1i=1i=m(hθ(x(i))y(i))2+2mλi=1i=mθi2
λ = 0 , 0.01 , 0.02 , 0.04 , 0.08 , . . . , 10.24 \lambda=0,0.01,0.02,0.04,0.08,...,10.24 λ=0,0.01,0.02,0.04,0.08,...,10.24作为不同模型的参数,得到通过训练集验证集得到的误差 J c v ( θ ) J_{cv}(\theta) Jcv(θ)。其误差曲线如下:
lambdaerror
可以得到:

  1. J c v ( θ ) J_{cv}(\theta) Jcv(θ)很大, J t r a i n ( θ ) ≈ J c v ( θ ) J_{train}(\theta)\approx J_{cv}(\theta) Jtrain(θ)Jcv(θ)时,此时处于高偏差,欠拟合的状态。
  2. J c v ( θ ) J_{cv}(\theta) Jcv(θ)很大, J t r a i n ( θ ) J_{train}(\theta) Jtrain(θ)很小时,此时处于高方差,过拟合的状态。
2.3. 修正欠拟合和过拟合

欠拟合(高偏差)状态:

  1. 增加特征变量
  2. 增加特征值的多次幂特征
  3. 减小正则化参数 λ \lambda λ的值

过拟合(高方差)状态:

  1. 获取更多训练样本
  2. 减少特征变量
  3. 增大正则化参数 λ \lambda λ的值

3. 学习曲线

随着训练样本量的增加,误差曲线如下:
merrorfit
merroroverfit
可以得到:

  1. 随着m增大,当 J c v ( θ ) J_{cv}(\theta) Jcv(θ)很大, J t r a i n ( θ ) ≈ J c v ( θ ) J_{train}(\theta)\approx J_{cv}(\theta) Jtrain(θ)Jcv(θ)时,此时处于高偏差,欠拟合的状态。
  2. 随着m增大,当 J c v ( θ ) J_{cv}(\theta) Jcv(θ)很大, J c v ( θ ) J_{cv}(\theta) Jcv(θ) J t r a i n ( θ ) J_{train}(\theta) Jtrain(θ)相差很大时,此时处于高方差,过拟合的状态。可以从图中看出,随着m的增大, J c v ( θ ) J_{cv}(\theta) Jcv(θ) J t r a i n ( θ ) J_{train}(\theta) Jtrain(θ)相差会越来越小,所以增加样本数量可有效的解决过拟合问题。

4. 误差分析

模型训练完毕后,通过测试数据集可以得到该模型下,测试数据的误差率。但是单单通过误差率不能有效的评估该模型。比如:偏斜类。
偏斜类:正样本数量远远大于负样本的数量,这样机器学习而来的模型起误差率可能大于全部预测为正的误差率,但这样的预测并不是一个机器学习算法。所以引入查准率和召回率。
TP(True Positive):实际为正(positive),预测正确(true)的数量。
FP(False Positive):实际为正(positive),预测错误(false)的数量。
FN(False Negative):实际为负(negative),预测错误(false)的数量。
TN(True Negative):实际为负(negative),预测正确(true)的数量。
查准率:所有预测为正的样本中实际为正的样本所占的比例。
P r e c i s i o n = T P T P + F P Precision = \frac{TP}{TP+FP} Precision=TP+FPTP
召回率:所有实际为正的样本中预测为正的样本所占的比例。
R e c a l l = T P T P + F N Recall = \frac{TP}{TP+FN} Recall=TP+FNTP
l o g i s t i c logistic logistic回归中,增大阈值,则Precision增大,Recall减小;减小阈值,则Precision减小,Recall增大。
利用 F 1 F_1 F1值评估算法性能, F 1 F_1 F1最大,算法性能越好。
F 1 = 2 P r e c i s i o n ∗ R e c a l l P r e c i s i o n + R e c a l l F_1=2\frac{Precision\ast Recall}{Precision+Recall} F1=2Precision+RecallPrecisionRecall

5. 机器学习系统设计

  1. 使用最简单的算法,尽可能块得得出一个不完美的结果。
  2. 利用cv集,画出学习曲线,找到高偏差或者高防叉问题,进行模型完善。
  3. 利用test集进行误差分析,手动检查被误分类的样本,进行特征分析,完善样本。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。它专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径。 随着统计学的发展,统计学习在机器学习中占据了重要地位,支持向量机(SVM)、决策树和随机森林等算法的提出和发展,使得机器学习能够更好地处理分类、回归和聚类等任务。进入21世纪,深度学习成为机器学习领域的重要突破,采用多层神经网络模型,通过大量数据和强大的计算能力来训练模型,在计算机视觉、自然语言处理和语音识别等领域取得了显著的成果。 机器学习算法在各个领域都有广泛的应用,包括医疗保健、金融、零售和电子商务、智能交通、生产制造等。例如,在医疗领域,机器学习技术可以帮助医生识别医疗影像,辅助诊断疾病,预测病情发展趋势,并为患者提供个性化的治疗方案。在金融领域,机器学习模型可以分析金融数据,识别潜在风险,预测股票市场的走势等。 未来,随着传感器技术和计算能力的提升,机器学习将在自动驾驶、智能家居等领域发挥更大的作用。同时,随着物联网技术的普及,机器学习将助力智能家居设备实现更加智能化和个性化的功能。在工业制造领域,机器学习也将实现广泛应用,如智能制造、工艺优化和质量控制等。 总之,机器学习是一门具有广阔应用前景和深远影响的学科,它将持续推动人工智能技术的发展,为人类社会的进步做出重要贡献。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值