linlh

  • 3

    获得赞
  • 2

    发布的文章
  • 0

    答辩的项目

如何实现一个完整的机器学习系统?

机器学习

最后更新 2020-05-19 17:38 阅读 8471

最后更新 2020-05-19 17:38

阅读 8471

机器学习

 1. 首先明确的你的问题 

是一个监督学习还是非监督学习,还是增强学习?是一个分类问题还是回归问题,或者其他?是应该用离线训练还是在线训练? 

然后要选定性能评估标准 对于回归问题,比如可以选择RMSE(Root Mean Square Error),其他的性能评估还有MAE(Mean Absolute Error),MAE和RMSE都可以用来衡量两个向量的距离。 

RMSE我们称之为L2正则,MAE称之为L1正则   更一般化的话,可以是Lk正则,L0正则给定向量中不为零的值,L无穷的话给定的是向量中绝对值最大的值。 正则的k越大,越关注在绝对值更大的值,而忽略那些值比较小的值。这也是为什么说RMSE比MAE来说对于异常值更敏感。 

当然对于不同的问题,评价标准有很多,不仅限于Lk正则的方式  

 2. 获取数据 

对于实际应用的问题,需要有相应的数据集。通常开放的数据集可以从Kaggle,Amazon AWS Dataset等等进行下载,包括FlyAI的一些开放信息。 

然后为当前工程创建相应的目录信息,也可以考虑为项目创建一个虚拟空间,virtualenv,取决于你的需求。  

3. 清理数据  

使用pandas加载数据,利用info/describe函数查看数据信息。确认数据的分布,数量以及数值范围 还需要做一些缺失值的处理,对于非数值类型的还需要进行一些转换,变成数值类型,one-hot编码等等。 还可以做一些数据的可视化。   

这里也要根据实际数据的不同进行一个调整,比如如果是图像数据的话,那是否要进行图像增强操作等等。

4. 选择和训练模型  

比如说选择传统的机器学习模型:逻辑回归,SVM,决策树,朴素贝叶斯,等等。  

或者是选择神经网络,比如说图像问题可以使用CNN,已有的模型都能够很好的做到图像的分类,识别工作,比如ResNet,AlexNet,VGGNet等等,可以结合自己的问题进行适当的fine-tune,一般可以得到还不错的效果。如果是不定长的序列,那可以使用RNN,LSTM等等。或者尝试现在的图神经网络。   

可以选择的模型和方法有很多,这些都需要根据实际的问题进行选择,并不断验证,确认适合实际问题的最优模型。  

还是选择已有的模型,再对现有的问题进行Fine-tune,这些都需要根据实际的问题进行选择,并不断验证,确认适合实际问题的最优模型。 

训练中也涉及到很多问题,包括过拟合,欠拟合。模型不work该怎么办的问题,需要很多的训练技巧和训练尝试。也是机器学习系统中需要花费很多时间的部分。 

 5. 上线模型  

将训练好的模型进行部署,在实际的使用场景中验证模型的有效性。 

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可,转载请附上原文出处链接和本声明。
本文链接地址:https://www.flyai.com/article/486
讨论
500字
表情
发送
删除确认
是否删除该条评论?
取消 删除