人工智能-机器学习

人工智能
后台-插件-广告管理-内容页头部广告(手机)

什么是机器学习

机器学习是一种从数据生成规则、发现模型,来帮助我们预测、判断、分组和解决问题的技术。

机器学习分类

监督学习:训练的数据集全部都有标签,根据标签的特点 监督学习可以分为两类问题:回归和分类,回归问题的标签是连续的数值,比如预测房价、股市等,分类问题的标签是离散的数值,比如人脸识别、判断是否正确等,判断两款运营策略哪种更有效。

人工智能-机器学习

编辑搜图

请点击输入图片描述(最多18字)


无监督学习:训练数据集没有标签,多应用在聚类、降维等有限的场景中,比如说为用户做分组画像,另外通常也会作为数据预处理的一个子步骤中。
半监督学习:有的数据有标签、有的数据没有标签。往往是因为获取数据标签的难度很高,半监督学习与监督学习是很相似的,主要区别在于多了伪标签生成环节,也就是给无标签的数据人工 贴标签。
强化学习:针对于一些既不能用监督学习也不能用半监督和无监督学习来解决,这时候强化学习就上场了,它针对是智能体如何基于环境而做出行动反应,以获得最大化的累积奖励。其与监督学习的差异在于监督学习是从数据中进行学习,而强化学习是从环境给他的奖惩中学习。

人工智能-机器学习

编辑搜图

请点击输入图片描述(最多18字)

机器学习工程实践的五个步骤

定义问题

需要我们剖析业务场景,设定清晰的目标,明确当前问题属于哪一种机器学习类型。
场景:比如一个场景,微信公众号推广文案的运营效率分析,收集了大量的软文数据,包括点赞数、转发数和浏览量等。因为公众号阅读超过十万之后,就不能显示它的具体阅读量了,所以针对这个问题,目标是建立一个机器学习模型,根据点赞数和转发数等指标,估计一篇文章能实现多大的浏览量。
要估计浏览量,数据集包含 点赞数、转发数、热度指数、文章评级,这几个字段是特征,浏览量就是标签,这里数据带有标签,因此这是一个监督学习,再加上标签是连续的数值,因此它是一个回归问题。

收集数据和预处理

收集数据
收集数据方法有多种,现实中要在运营环节中做很多数据埋点、获取用户消费等行为信息和兴趣偏好信息,网上爬取数据等等。
数据可视化
作用是通过可视化观察下数据,看一看特征和标签之间可能存在的关系、看看数据里有没有脏数据和离群点等,为选择具体的机器学习模型找找感觉。


人工智能-机器学习

编辑搜图

请点击输入图片描述(最多18字)


像这种基本可以看出呈现线性相关性。
数据清洗
主要数据清洗分为四种情况:
第一种是处理缺失的数据,如果备份系统里面有缺了的数据,尽量去补录。如果没有可以剔除残缺的数据,也可以用其他数据记录的平均值、随机值或者 0 来补值,这个补值的过程叫数据修复。
第二种是处理重复的数据,如果完全重复的数据删掉就行,如果同一个主键出现两行不同的数据,就需要看看有没有其他辅助的信息可以帮助我们判断(如时间戳),要是无法判断的话,只能随机删除或者全部保留。
第三种是处理错误数据:比如商品的销售量、销售金额出现负值,这时候需要删除或者转化为有意义的值,再比如表示百分比或者概率的字段,如果值大于 1,也属于逻辑错误数据
第四种处理不可用的数据,这指的是整理数据的格式,比如有些商品是以人民币为单位,有些以美元为单位,就需要线统一,另外就是把是和否转换为 1、0 值再输入机器学习模型。
特征工程
特征工程是一个专门的机器学习子领域,它是数据处理过程中最有创造力的环节,特征工程做得好不好,非常影响机器学习模型的效率。
什么是特征工程了?比如说评估身体健康状况的一个指标 BMI,它等于体重除以身高的平方,这就是一个特征工程。经过了这个过程,BIM 这一个指数就替代了原来的两个特征-体重和身高,而且完全能客观地描绘我们身材情况。
这样的好处是什么?通过 BMI 这个特征,降低了特征数据集的维度。数据集中每多一个特征,模型拟合的特征空间就更大、运算量也就更大。所以,摒弃掉冗余的特征、降低特征的维度,能使机器学习模型训练得更快。
构建特征集和标签集
特征就是所收集的各个数据点,是要输入机器学习模型的变量,而标签是要预测、判断或者分类的内容。对于所有监督学习,我们需要像模型中输入"特征集"和"标签集"这两组数据。
通常从一个包含了特征和标签的数据,构建特征数据集和一个标签数据集合,只需要从原数数据删除不需要的数据就行了。
拆分训练集、验证集和测试集合
从原数据集从列的维度纵向拆分成了特征集和标签集后,还需要进一步从行的维度横向拆分。主要原因是机器学习并不是通过训练数据集找出一个模型就结束了,我们要用验证数据集看看这个模型好不好,然后用测试数据集看看模型在新数据上能不能用。
收集数据和预处理总结:

人工智能-机器学习

编辑搜图

请点击输入图片描述(最多18字)

选择算法和训练模型

选择依据
主要是根据特征和标签之间的关系,选出一个合适的算法,并找出与之对应的合适算法包,然后通过调用这个算法包来建立模型,通过上一个步骤,这个数据集里的某些特征和标签之间存在着近似线性的关系。而且这个数据集的标签是连续变量,因此适合用回归分析来寻找从特征到标签的预测函数。
建立模型
调用 LinearRegression 建立模型非常简单,如下
from sklearn.liner_model import LinerRegression # 导入线性回归算法模型
linereg_model = LinearRegression() # 使用线性回归创建模型
模型参数有两种,内部参数和外部参数。内部参数是属于算法本身的一部分,不用我们人工来确定,比如线性回归中的权重 w 和截距 b,都是线性回归的内部参数;而外部参数也叫作超参数,他们的值是在创建模型时,由我们自己设定的。

训练拟合模型

训练模型就是用训练集中的特征变量和已知标签,根据样本大小的损失大小来逐渐拟合函数,确定最优的内部参数,最后完成模型。
linereg_model.fit(x_train,y_train) # 用训练集数据,训练机器,拟合函数,确定内部参数
主要得益于机器学习库的存在,直接通过 fit 完成模型训练,fit 内部核心就是优化其内部参数减少损失,使函数对特征到标签的模拟越来越贴切, 针对所有样本,找到一组平均损失较小的模型参数。 这其中的关键就是:通过梯度下降,逐步优化模型的参数,使训练集误差值达到最小。
梯度下降:通过求导的方法,找到每一步的方向,确保总是往更小的损失方向前进。

评估并优化模型性能

在验证集和测试集进行模型效果评估的过程中,我们则是通过最小化误差来实现超参数(模型外部参数)的优化。机器学习包中(如 scikit-learn)都会提供常用的工具和指标,对验证集和测试集进行评估,进而计算当前的误差。比如 R 方或者 MSE 均方误差指标,就可以用于评估回归分析模型的优劣。

人工智能-机器学习
后台-插件-广告管理-内容页尾部广告(手机)
标签:

评论留言

我要留言

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。