首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

白话机器学习

学习机器学习已经两月有余,从刚开始接触时的一脸懵懂,到现在能用开源的机器学习框架解决一些简单的实际应用,也算是小有进步。

期间,也曾对做的机器学习应用进行了一些交流分享,而交流时看到听众在听到特征工程、数据模型、参数调优等机器学习处理过程时茫然的表情,便有些疑惑不解。会后细想,究其原因可能是机器学习涉及到数学基础科学、数据科学、计算科学等多个方面,是多个学科的结合,是一个全新复杂的领域。对于一些对于这些领域不太熟悉的人来说,如果用机器学习的专业术语来给他们讲,理解上确实存在一些困难。便想,对于一些没有相关理论背景,但是想了解机器学习的人,有没有一个通俗易懂的描述来把机器学习来讲明白呢?

于是,结合这段时间自己对机器学习的了解和认知,尝试着对机器学习机器过程进行白话的描述。

机器学习一词最早是由ArthurSamuel在1959年提出。Tom M.Mitchell则给出了一个被广泛引用的且更正式的定义:“如果一个计算机程序针对某类任务T的用P衡量的性能根据经验E来自我完善,那么我们称这个计算机程序在从经验E中学习,针对某类任务T,他的性能用P来衡量。”

而维基百科上对机器学习进行了稍微详细的解释:“机器学习(ML)是对算法和统计模型的科学研究,计算机系统使用这些算法和统计模型来有效地执行特定的任务,而不需要使用明确的指令,而是依赖于模型和推理。它被视为人工智能的一个子集。机器学习算法建立样本数据的数学模型,称为“训练数据”,以便在不显式编程执行任务的情况下进行预测或决策。”机器学习目前有着广泛的应用,如垃圾邮件识别、网络入侵检测、客户消费行为分析、内容推荐、图像识别等等。相信看了这些描述,能明白机器学习及其应用过程不会有太多。那下面咱们就换个描述方式来解释下机器学习。

机器学习可以比作制做豆浆:机器学习通过数据采集和准备、特征工程、模型选择和训练、参数调优、模型训练等就成输出有效的学习结果。而豆浆制作通过原料采集、原料加工处理、加工设备的选择、设备制作参数的选择等就制作出美味的豆浆。咱们就用复合豆浆的制作过程来解释下机器学习的过程。

一、数据采集&&原料采集

进行机器学习,首先就需要有特征数据,这就需要对原始数据进行采集。有了原始特征数据,但是还不能直接进行模型训练和学习,需要进行特征工程对原始数据进行处理。而这就像制作豆浆首先要有原材料,这就首先需要去田地里去收割整制作原料,这时候的原料还不能直接用于豆浆制作,还只是原始的制作材料,因为这时候的原始材料包含有叶子、豆荚、干枝、黄豆、红豆、黑豆、绿豆、豌豆、芸豆、沙子、其它杂质等原始的特征数据,需要进行加工和处理。

二、特征工程&&原料处理

原始的数据有了,就需要利用特征工程对原始数据进行处理。顾名思义,其本质是一项工程活动,目的是最大限度地从原始数据中提取特征以供算法和模型使用。特征工程包括特征选择和特征提取,特征提取和特征选择统称为降维。

特征选择是从原始特征数据集中选择出子集,是一种包含的关系,没有改变原始的特征空间,特征提取的方法主要有Filter方法、Wrapper方法、Embedded方法。这个就像原料处理的第一步,首先需要从所有的原材料中选出一部分材料来。比如,选出所有的豆子来。但是,并不是所有的豆子都适合来制作豆浆,这就需要采用一定的选择方法。假如,咱们采用Filter方法,这就需要原材料中所有类别的材料赋予权重,这个权重就代表着这种材料的重要性,比如黄豆最重要,设置的权重就最高,而芸豆不重要,权重就设置的比较低,而豆荚、沙子这些和制作豆浆毫无关系,就可以权重设置为零,或者直接丢弃,然后根据权重进行排序,最后根据一定的规则进行计算选择。

特征提取主要是通过属性间的关系,如组合不同的属性都到新的属性,这种方法会改变原来的特征空间,特征提取的方法主要有PCA、LDA、SVD等。这就相当于豆子的范围确定了,但是由于豆子有许多种,就需要决定是选用一种豆子还是选择多种不同的豆子,豆子是否需要水泡一下呢等等。按照以往的的方式,一般是通过人的经验对豆子的种类和比例进行选择,这就可能出现由于经验的不准确导致后面制作出来的豆浆口味不佳。后面,有人通过对不同豆子的蛋白质含量、微量元素含量等进行了科学的实验,给出了一些标准的元素含量参数和计算方法,人们就可以按照这种科学的计算方法进行选择豆子的种类和组合。而这就像特征提取中提供的PCA、LDA、SVD等特征提取方法,通过这些方法,咱们就通过特征工程完成了对特征的处理,就可以进入下一步对模型进行选择和利用数据进行模型训练。

三、模型选择和训练&&设备选择和制作

特征数据集准备好了,咱们就可以开始选择机器学习模型,利用数据进行模型的训练和参数调优。说到机器学习模型,你肯定听到过一大堆的名字:MultinomialNaive Bayes、Logistic Regression、SVR、Line RegressionKNN、Decision Tree、Random Forest、Gradient BoostingDecision Tree、SVM、XGBoost……有没有还没开始就想放弃的感觉。

不过,不要怕,现在好多的模型都已经有开源的机器学习框架进行了实现,对于机器学习的初级玩家,咱们只需要直接调用现成的模型就好。这就像,咱们不需要自己去设计和制作一个豆子加工设备,因为市场上已经有各种各样的豆浆机在卖,咱们只需要选择合适的都设备就好。就像机器学习有MultinomialNaive Bayes、Logistic Regression、KNN等不同的学习模型,豆子加工设备则有传统石磨、豆浆机、某料理机等不同的豆子加工设备。

好了,那咱们就要选择特定问题适用的学习模型来进行训练,比如价格预测问题可以选择Line Regression、SVR等,文本分类问题可以选择Multinomial NaiveBayes、Logistic Regression等。而我们要进行豆浆的制作,料理机可能就不太合适,可以选择传统石磨、豆浆机等。

现在开始训练,首先把数据集进行分类,分为训练集和测试集,训练集用来训练和模型和找出最佳参数,测试集对训练好的模型进行验证。那么,好的模型的标准是什么呢?如果是分类问题,一般采用Precision、Recall来进行判断,而对于回归的评价指标一般会用MSE、RMSE、MAE、R-SquaredError。……又是训练集、测试集,又是最佳参数、还有评价指标,听起来好复杂的样子。好吧,咱们还是用豆浆制作做个类比。训练集和测试集就相当于咱们把豆子分为两部分,一部分进行找设备制作参数完成豆浆制作方面的确定,另一部分对确定好的制作方法进行验证。假如咱们选择了对豆浆机,其豆浆制作模式(干磨、湿磨、精磨等)的选择就相当于机器学习模型参数的调优。而机器学习的评价标准就相当于豆浆制作出来后,咱们对其色、香、味等方面的评价标准。到这里,一个机器学习的模型就训练好了,就可以进行实际的应用了。

本文主要是力图通过通俗易懂的方式来解释下机器学习,通过白话的方式使大家来理解机器学习的概念和处理过程,其中可能出现不严谨之处,还望各位读者海涵。这也是本人第一篇关于机器学习的文章,也欢迎各位拍砖。最后,明天就是除夕,提起祝大家春节快乐、万事如意!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190203G0LYI600?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券