我们在进行机器学习过程中一个通用步骤主要有以下几个方面:
1)明确问题
* 实现什么目标
* 需要什么数据 这个问题:如果公司有大量的数据,可以确定最终的目标是什么;如果没有则需要通过目标来确定数据集
2)获取数据
* 自己公司内部的数据(项目上使用),如数据库等
*
开源数据集,如:UCI、GoogleTrends、Kaggle、AWS公用数据集、Imagenet、MINIST、麻省理工大学人脸识别、歌曲数据库、图像处理COCO、视频数据集youtube等等
3)数据格式整理
往往我们的数据大多都是数据库文件数据,并不是里面所有的维度信息都是需要用到的,所以这里需要进行相应的处理。
* 把收集到的数据转换为txt,csv,xsl等的形式,方便机器学习库进行读取
* 原始数据的所有的变量量化,进一步转变为含数据(Data)和标签(Labels)的数据框形式,方便建模。
4)数据预处理
* 偏差检测:即检查导致偏差的因素,并识别离散值与噪声值。
* 数据清洗:即处理缺失值与噪声。
* 数据标准化
5)数据拆分
* 将数据集随机打乱按照7:3或者8比2或者其他拆分为训练集和测试集。
6)根据场景采用不同的合适机器学习模型
考虑因素:
*
数据的维度大小,数据的质量和数据的特征属性;
*
可以利用的计算资源;
*
所在的项目组对该项目的时间预计;
*
手上的数据能应用在哪些项目中;
选择的依据
*
如果要进行降维操作,那么你可以使用主成分分析方法(PCA);
*
如果要快速进行手写数字预测,那么你可以使用决策树或者逻辑回归;
*
如果要进行数据分层操作,那么你可以使用分层聚类。
*
等等
7)设置损失函数loss
* 0-1损失函数 也就是说,当预测错误时,损失函数为1,当预测正确时,损失函数值为0。该损失函数不考虑预测值和真实值的误差程度。只要错误,就是1。
* 平方损失函数 是指预测值与实际值差的平方。
* 绝对值损失函数 该损失函数的意义和上面差不多,只不过是取了绝对值而不是求绝对值,差距不会被平方放大。
* 对数损失函数
* Hinge loss
8) 设置学习率
* 对于不同大小的数据集,调节不同的学习率
* 在每次迭代中调节不同的学习率
9)测试,检验
综上整个大致流程如图所示:
以上有不准确的,欢迎提意见,探讨。。
资源下载
[资源下载]https://github.com/ai-word <https://github.com/ai-word>
热门工具 换一换