社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

机器学习过程:特征、模型、优化和评估

数据派THU • 2 月前 • 101 次点击  

来源:CloudB计算思维与美

本文约2200字,建议阅读7分钟

“人”如何做好“人”擅长的事情,把剩下的交给机器。


[ 导语 ]机器学习从20世纪80年代开始引领人工智能的发展潮流,其对人工智能的重要贡献在于从人工赋予机器智能转移到机器自行习得智能。毫无疑问,学习和求解问题的能力是智能的集中体现,机器如何模拟人的这一能力?实践证明了以大脑级别得大规模并行架构为基础得算法比逻辑规则为基础的算法更实用。“人”如何做好“人”擅长的事情,把剩下的交给机器。从强算法到强算力,再到强数据,机器不断在延伸和拓展人的能力边界。

特征

在机器学习中,特征(Feature) 是指用来描述数据对象的独立可量化的属性。一个特征不足以代表一个物体,所以机器学习中使用特征的组合--特征向量。

  • 如预测房屋价格,特征:房屋面积、房间数量、地理位置、建造年份、是否靠近学校地铁站等;
  • 识别图像中的物体,特征:原始图像像素值、边缘检测值、颜色直方图、深度学习提取量等;
  • 判断一段文字的情感极性(正面/负面),特征:词频、词嵌入生成向量、正/负面词、句子长度等;
  • 预测未来天气温度,特征:历史温度值、湿度、气压、风速、季节、时间等;

深度学习可以通过其自动学习数据中的复杂特征来替代传统的特征工程,减少人工干预的需要。具体来说,深度学习的模型(特别是深度神经网络)能够从原始数据中自动提取层次化的特征,而无需依赖手动设计的特征。

端到端学习:即从原始数据到最终输出的过程可以完全由神经网络自动学习。尽管深度学习成为机器学习的主流,但在数据不足或可解释性要求较高的场景下,传统的特征工程方法仍然有其价值。

限制:

  • 数据需求量大
    深度学习通常需要大量标注数据来进行有效训练,若数据量不足,可能无法充分学习到有效特征。
  • 训练成本高
    深度学习模型的训练通常需要强大的计算资源和较长的时间。
  • 可解释性差

    深度学习模型的“黑箱”性质使得它们比传统方法更难解释,尤其是在需要解释模型决策的场景中,不如传统机器学习方法透明。

模型及评估

  • 模型:数据抽象出来的数学描述;好的模型不仅取决于算法和数据,还取决于任务需求。
  • 策略:针对不同模型的选择及比较;
  • 算法:具体实施方法,如数学问题如何最优化解?

对训练完成的模型进行性能分析和测试的过程,以确定模型在新数据上的表现。因此,数据通常会被分为训练集、验证集和测试集。

(1)训练集、验证集和测试集

  • 训练集(Training Set)训练机器学习模型的参数,估计模型;
  • 验证集(Validation Set) 训练过程中参数调节;开发集(Dev Set)对不同的参数进行选择,控制模型复杂程度的参数,更灵活的数据评估集。
  • 测试集(Test Set) 验证最终的机器学习系统的性能,选择最优模型的性能如何;


  • 偏差(Bias):
    偏差衡量的是模型的预测结果与真实值之间的差距,即模型对训练数据拟合程度的不足。
  • 方差(Variance):
    方差衡量的是模型对训练数据中的噪声的敏感程度,即模型对训练数据的过度拟合程度。

偏差-方差窘境(Bias-variance dilemma):模型训练不足时,模型拟合能力不强,偏差主导,随着训练加深,模型拟合程度增强,方差逐渐主导。

(2)查准率VS.查全率

不妨看看如果把池子里的所有的鲤鱼、虾和鳖都一网打尽,这些指标又有何变化:

  • 正确率 = 1400 / (1400 + 300 + 300) = 70%

  • 召回率 = 1400 / 1400 = 100%

  • F值 = 70% * 100% * 2 / (70% + 100%) = 82.35%
由此可见,正确率是评估捕获的成果中目标成果所占的比例;
  • 召回率,就是从关注领域中,召回目标类别的比例;

  • 而F值,则是综合这二者指标的评估指标,用于综合反映整体的指标。

优化

机器学习中的优化问题大多数可以归结为最小化问题,即寻找最小化损失函数的参数。

1. 参数优化问题

线性回归:最小化均方误差(MSE)损失函数,找到最优的回归系数。

逻辑回归:最小化交叉熵损失函数,以找到最优的分类参数。

2. 正则化优化问题

为了防止过拟合,我们通常会在目标函数中加入正则化项。例如:

  • L2 正则化:(也叫岭回归)加入了参数的平方和。
  • L1 正则化:(也叫 Lasso 回归):加入了参数的绝对值和。

这些正则化项会增加优化问题的复杂度,目的是找到一个既能拟合数据又不容易过拟合的解。

3. 神经网络优化问题

神经网络的训练也是一个优化问题,通常通过反向传播算法来优化神经网络的权重和偏置。训练神经网络时:

  • 目标函数是损失函数(如交叉熵损失,均方误差损失)。
  • 优化过程通过梯度下降等方法来调整网络的权重和偏置。

神经网络的优化问题往往具有多个局部最小值或鞍点,因此它比传统的线性模型更复杂。

4. 支持向量机(SVM)优化问题

SVM 的目标是最大化分类边界的间隔,超平面将两类数据点分开,同时最小化分类误差。优化问题包括:

  • 目标函数:最大化间隔(即最小化目标函数),同时满足一定的分类准确度。
  • SVM 优化问题通常涉及到约束条件(例如,软间隔支持向量机)。

优化算法:

  • 梯度下降(Gradient Descent)是一种常见的优化方法,用于最小化目标函数。算法通过计算损失函数关于模型参数的梯度(导数),并根据梯度的方向调整参数。
  • 动量法(Momentum)是梯度下降的一个改进,加入了过去梯度的“惯性”,通过调整参数更新的方向来加速收敛并避免震荡。
  • Adam(Adaptive Moment Estimation):Adam 是一种常用的优化算法,结合了梯度下降和动量法的优点,能够自适应调整每个参数的学习率,在深度学习中应用广泛。


编辑:黄继彦


关于我们

数据派THU作为数据科学类公众号,背靠清华大学大数据研究中心,分享前沿数据科学与大数据技术创新研究动态、持续传播数据科学知识,努力建设数据人才聚集平台、打造中国大数据最强集团军。



新浪微博:@数据派THU

微信视频号:数据派THU

今日头条:数据派THU

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/178953
 
101 次点击