• 机器学习(三十)— 机器学习项目一般步骤


      一个完整的机器学习项目一般流程包括: 
    1、抽象成数学问题

      首先要明确问题,分类还是回归,尽量避免胡乱尝试;

    2、数据获取及分析

      获取的数据要有代表性,否则必然会过拟合。 
      而且对于分类问题,数据偏斜不能过于严重,不同类别的数据数量不要有数个数量级的差距。 而且还要对数据的量级有一个评估,多少个样本,多少个特征,可以估算出其对内存的消耗程度,判断训练过程中内存是否能够放得下。如果放不下就得考虑改进算法或者使用一些降维的技巧了。如果数据量实在太大,那就要考虑分布式了。

    3、数据预处理

      数据清洗、数据归一化、扩充等。归一化、离散化、因子化、缺失值处理、去除共线性等,数据挖掘过程中很多时间就花在它们上面。这些工作简单可复制,收益稳定可预期,是机器学习的基础必备步骤。 

    4、特征工程

      筛选出显著特征、摒弃非显著特征,需要机器学习工程师反复理解业务。这对很多结果有决定性的影响。特征选择好了,非常简单的算法也能得出良好、稳定的结果。这需要运用特征有效性分析的相关技术,如相关系数、卡方检验、平均互信息、条件熵、后验概率、逻辑回归权重等方法。

    5、训练模型选择与调优

      要根据数据的实际情况和具体要解决的问题来选择模型,比如样本数、特征维度,数据特征综合考虑;要解决的问题是分类还是回归,问题需要网络去关注哪方面,结合实际情况选择网络。

      调优问题,可以采用交差验证,观察损失曲线,测试结果曲线等分析原因,调节参数:优化器、学习率、batchsize等

      可以尝试多模型融合,来提高效果。

    6、后处理

      网络的到的结果一般不直接使用,通过一些后处理方案,不如加入先验约束,一些处理,将明显错误去除。

    7、模型评估

      从各个方面评估,模型准确率、误差,时间、空间复杂度,稳定性、迁移性等

  • 相关阅读:
    Java开发笔记(四十二)日历工具的常见应用
    Java开发笔记(四十一)日历工具Calendar
    Java开发笔记(四十)日期与字符串的互相转换
    Java开发笔记(三十九)日期工具Date
    Java开发笔记(三十八)利用正则表达式校验字符串
    Java开发笔记(三十七)利用正则串分割字符串
    Java开发笔记(三十六)字符串的常用方法
    Java开发笔记(三十五)字符串格式化
    Git 工作流程
    如果你恨一个程序员,忽悠他去做iOS开发
  • 原文地址:https://www.cnblogs.com/eilearn/p/9498616.html
Copyright © 2020-2023  润新知