新媒易动态
NEWS CENTER
NEWS CENTER
2020-12-04
现简单的将训练流程划分为:定位要解决的任务类型 -> 选择合适的算法模型 -> 准备数据集 -> 训练模型 -> 调整参数 -> 模型评估及验收。
结合不同的应用场景,机器学习核心解决的任务类型可以简单归纳为分类问题、回归问题、聚类问题、时间序列问题。
原理:根据样本特征提前定义好数据的分类,把具有相同特征的数据点落到提前定义好的类别标签上完成分类。
特点:数据样本有标签。
应用场景:人脸识别、垃圾邮件检测、图像识别、信用卡评估…
原理:通过历史数据的表现,拟合成一个目标函数,利用误差分析方法去确定拟合后表现最好的函数。
特点:数据是相互独立的点,且有对应标签。
应用场景:预估业务增量、房价增长、股票增长…
原理:不需要提前去定义期望的数据需要怎样划分,根据样本特征的距离去决定分类,保持最小的组内相似。
特点:数据样本无标签,不需要提前去定义期望的数据需要怎样划分,根据样本特征的距离去决定分类,保持最小的组内相似。
应用场景:用户分群、商品聚类…
原理:与回归的逻辑相似,但对数据的要求不一样,数据按照时间顺序排列,根据相等间隔的时间段的数据表现规律去预估未来的表现。
特点:数据点之间彼此相关。
应用场景:需要进行周期性预测类的场景。
根据不同任务类型选择合适的算法模型,如果要解决的是分类问题,即对应的要选择擅长处理分类问题的算法模型,选择合适的模型可以提高数据训练的效率。
通常选择什么样的算法是由算法工程师主导的,产品经理只需要简单理解所解决的问题范围即可。
scikit-learn上支持的分类算法:
要解决聚类的问题,如用户分群,可以选择聚类的算法模型。
scikit-learn上支持的聚类算法:
如果要依赖趋势做数值预测,如业务量增长,可以选择回归算法模型。
scikit-learn上支持的回归算法:
准备数据集包含了数据处理、特征提取、训练集、测试集的分割。
通常来说,我们收集上来的数据来源比较多,可能会存在一些问题,例如数据缺失、数据格式不一致、数据集分布不均匀、数据重复等问题,因此需要进行数据的预处理。
不同问题的处理方式:
在机器学习的训练中,需要将业务维度相关的数据进行向量转化,解决部分复杂问题时,如果维度较多在转化过程中很容易造成大量的计算资源的消耗,一般会先进行特征的提取,也就是常说的特征工程,来进行维度的简化。
常用的方法是主成分分析,原理是将两个或几个独立的特征组合到一起形成一个特征;利用这种方式进行降维,使训练的维度减少,提高训练效率。
在机器学习模型训练之前,通常要进行数据的分割,常用的有1/4分割、1/10分割,具体需要根据自己的数据样本量去拆分。
准备好数据集,确定了要使用的算法,下一步要进行具体的模型训练;上一篇文章中我们提到机器学习模型训练中经常遇到的两个问题,过拟合和欠拟合。
特点:在训练集上表现非常好,但是在测试数据或者验证数据上表现很差,说明模型缺失泛化能力。
原因:训练数据太少或者学习后的模型过于复杂。
解决方法:增加训练样本,或者减少数据维度,或者为模型添加一个正则项来扩大模型在训练上的误差。
特点:在训练集上表现不好,在测试数据上表现也不好。
原因:维度较少拟合的函数不足以表达数据规律。