机器学习——实践

简介: 机器学习——实践

一、数据集划分

  1. 训练集(Training Set):帮助我们训练模型,简单的说就是通过训练集的数据让我们确定拟合曲线的参数。  
  2. 验证集(Validation Set):也叫做开发集( Dev Set ),用来做模型选择(model selection),即做模型的最终优化及确定的,用来辅助我们的模型的构建,即训练超参数,可选;
  3. 测试集(Test Set): 为了测试已经训练好的模型的精确度。

  • 三者划分:训练集、验证集、测试集
  • 机器学习:60%,20%,20%;70%,10%,20%
  • 深度学习:98%,1%,1% (假设百万条数据)

1、交叉验证

1. 使用训练集训练出k个模型

2. 用k个模型分别对交叉验证集计算得出交叉验证误差(代价函数的值)

3. 选取代价函数值最小的模型

4. 用步骤3中选出的模型对测试集计算得出推广误差(代价函数的值)

2、不平衡数据的处理

数据不平衡是指数据集中各类样本数量不均衡的情况.

常用不平衡处理方法有采样和代价敏感学习

采样有欠采样、过采样和综合采样的方法.

代价敏感学习

代价敏感学习是指为不同类别的样本提供不同的权重,从而让机器学习模型进行学习的一种方法

比如风控或者入侵检测,这两类任务都具有严重的数据不平衡问题,可以在算法学习的时候,为少类样本设置更高的学习权重,从而让算法更加专注于少类样本的分类情况,提高对少类样本分类的查全率,但是也会将很多多类样本分类为少类样本,降低少类样本分类的查准率。

二、评价指标

1. 正确肯定(True Positive,TP):  预测为真,实际为真

2. 正确否定(True Negative,TN):预测为假,实际为假

3. 错误肯定(False Positive,FP):  预测为真,实际为假

4. 错误否定(False Negative,FN):预测为假,实际为真

 混淆矩阵(confusion_matrix)

有100张照片,其中,猫的照片有60张,狗的照片是40张。

输入这100张照片进行二分类识别,找出这100张照片中的所有的猫。

  • 正例(Positives):猫
  • 负例(Negatives):狗

识别结果的混淆矩阵

1、正确率(Accuracy)=(TP+ TN)/S

TP+ TN =70,S= 100,则正确率为: Accuracy =70/100=0.7

2、精度(Precision)=TP/(TP+ FP)

TP=40,TP+ FP=50。 Precision =40/50=0.8

3、召回率(Recall)=TP/(TP+ FN)

TP=40,TP+FN =60。则召回率为: Recall =40/60=0.67

ROC和PR曲线

三、正则化、偏差和方差

为什么要标准化/归一化?

提升模型精度:不同维度之间的特征在数值上有一定比较性,可以大大提高分类器的准确性。

加速模型收敛:最优解的寻优过程明显会变得平缓,更容易正确的收敛到最优解。

之前介绍过,过拟合可以通过正则化来处理,这里我们介绍另外几种方法  

过拟合的处理——Dropout

Dropout的功能类似于L2正则化,与L2正则化不同的是,被应用的方式不同,dropout也会有所不同,甚至更适用于不同的输入范围

keep-prob=1(没有dropout)       keep-prob=0.5(常用取值,保留一半神经元)

在训练阶段使用,在测试阶段不使用!

过拟合的处理——Early stopping

Early stopping代表提早停止训练神经网络

Early stopping的优点是,无需尝试L2正则化超参数λ的很多值。

过拟合的处理——数据增强

数据增强:随意翻转和裁剪、扭曲变形图片

偏差和方差

偏差Bias:描述的是预测值(估计值)的期望与真实值之间的差距。偏差越大,越偏离真实数据,如上图第二行所示。

方差Variance: 描述的是预测值的变化范围,离散程度,也就是离其期望值的距离。方差越大,数据的分布越分散,如上图右列所示。

方差、偏差和模型复杂度

下图是模型复杂度与误差的关系,一般来说,随着模型复杂度的增加,方差会逐渐增大,偏差会逐渐减小,在虚线处,差不多是模型复杂度的最恰当的选择,其“偏差”和“方差”也都适度,才能“适度拟合”。

1. 获得更多的训练实例——解决高方差

2. 尝试减少特征的数量——解决高方差

3. 尝试获得更多的特征——解决高偏差

4. 尝试增加多项式特征——解决高偏差

5. 尝试减少正则化程度λ——解决高偏差

6. 尝试增加正则化程度λ——解决高方差


相关文章
|
3月前
|
机器学习/深度学习 人工智能 算法
探索机器学习:从理论到实践的旅程
【8月更文挑战第26天】机器学习,这个听起来既神秘又充满无限可能的领域,实际上已经深入到我们生活的方方面面。本文将通过一次虚拟的“旅行”,带领读者了解机器学习的基本概念、主要技术和应用实例,同时提供一个简单的Python代码示例,帮助初学者迈出探索这一激动人心领域的第一步。无论你是科技爱好者,还是对未来充满好奇的学生,这篇文章都将成为你理解并应用机器学习技术的启航点。
|
1月前
|
机器学习/深度学习 数据采集 人工智能
AI与机器学习:从理论到实践
【10月更文挑战第2天】本文将深入探讨AI和机器学习的基本概念,以及它们如何从理论转化为实际的应用。我们将通过Python代码示例,展示如何使用机器学习库scikit-learn进行数据预处理、模型训练和预测。无论你是AI领域的初学者,还是有一定基础的开发者,这篇文章都将为你提供有价值的信息和知识。
|
24天前
|
机器学习/深度学习 数据可视化 数据挖掘
机器学习中空间和时间自相关的分析:从理论基础到实践应用
空间和时间自相关是数据分析中的重要概念,揭示了现象在空间和时间维度上的相互依赖关系。本文探讨了这些概念的理论基础,并通过野火风险预测的实际案例,展示了如何利用随机森林模型捕捉时空依赖性,提高预测准确性。
35 0
机器学习中空间和时间自相关的分析:从理论基础到实践应用
|
29天前
|
机器学习/深度学习 算法 Python
探索机器学习中的决策树算法:从理论到实践
【10月更文挑战第5天】本文旨在通过浅显易懂的语言,带领读者了解并实现一个基础的决策树模型。我们将从决策树的基本概念出发,逐步深入其构建过程,包括特征选择、树的生成与剪枝等关键技术点,并以一个简单的例子演示如何用Python代码实现一个决策树分类器。文章不仅注重理论阐述,更侧重于实际操作,以期帮助初学者快速入门并在真实数据上应用这一算法。
|
3月前
|
机器学习/深度学习 人工智能 供应链
掌握机器学习:从理论到实践PHP:从入门到精通的旅程
【8月更文挑战第20天】在探索人工智能的无限可能时,机器学习作为核心驱动力,引领着技术革新和产业变革。本文深入浅出地介绍了机器学习的基本概念、核心算法及其在实际中的应用,旨在为初学者提供一个清晰的学习路径和对这一激动人心领域的全面理解。通过探讨机器学习如何影响我们的生活和工作,本文不仅阐述了理论知识,还分享了实践案例,帮助读者把握机器学习的精髓,激发对未来技术发展的想象与创造。
172 65
|
29天前
|
机器学习/深度学习 算法 PyTorch
【机器学习】大模型环境下的应用:计算机视觉的探索与实践
【机器学习】大模型环境下的应用:计算机视觉的探索与实践
54 1
|
1月前
|
机器学习/深度学习 算法 自动驾驶
探索机器学习:从理论到实践
本文将带你进入机器学习的世界,从基本概念出发,深入探讨其背后的数学原理,再通过Python代码示例,展示如何实际应用这些理论。无论你是初学者还是有经验的开发者,都能从中获益。
|
1月前
|
机器学习/深度学习 数据可视化 算法
机器学习中的回归分析:理论与实践
机器学习中的回归分析:理论与实践
|
2月前
|
机器学习/深度学习 算法 自动驾驶
探索机器学习:从理论到实践
【9月更文挑战第24天】本文将带你走进机器学习的世界,了解其基本概念,探索其背后的数学原理,并通过Python代码示例,展示如何实现一个简单的线性回归模型。无论你是初学者还是有经验的开发者,都能在这篇文章中找到新的视角和深入的理解。
42 9
|
1月前
|
机器学习/深度学习 算法 自动驾驶
探索机器学习:从理论到实践的旅程
【8月更文挑战第62天】本文通过深入浅出的方式,带领读者走进机器学习的世界。首先介绍了机器学习的基本概念,然后通过一个简单的Python代码示例,展示了如何实现一个基本的线性回归模型。最后,探讨了机器学习在现实生活中的应用,以及未来的发展趋势。本文旨在帮助初学者理解机器学习的基本理念,并激发他们进一步探索这一领域的兴趣。