简介:机器学习是一门多学科交叉专业,涵盖概率论知识,统计学知识,近似理论知识和复杂算法知识,使用计算机作为工具并致力于真实实时的模拟人类学习方式,并将现有内容进行知识结构划分来有效提高学习效率。
机器学习的定义:
1、机器学习是一门人工智能的科学,该领域的主要研究对象是人工智能,
特别是如何在经验学习中改善具体算法的性能。
2、机器学习是对能通过经验自动改进的计算机算法的研究。
3、机器学习是用数据或以往的经验,以此优化计算机程序的性能标准。
机器学习流程图:
1. 收集数据:
收集到的数据的质量和数量将直接决定预测模型是否能够建好。需要将收集的数据去重复、标准化、错误修正等,保存成数据库文件或者csv格式文件,为下一步数据的加载做准备。
2. 分析数据:
分析数据主要是数据发现,比如找出每列的最大、最小值、平均值、方差、中位数、三分位数、四分位数、某些特定值(比如零值)所占比例或者分布规律等等都要有一个大致的了解。了解这些最好的办法就是可视化,谷歌的开源项目facets可以很方便的实现。另一方面要确定自变量(x1…xn)和因变量y,找出因变量和自变量的相关性,确定相关系数。
3. 特征选择:
特征的好坏很大程度上决定了分类器的效果。将上一步骤确定的自变量进行筛选,筛选可以手工选择或者模型选择,选择合适的特征,然后对变量进行命名以便更好的标记。命名文件要存下来,在预测阶段的时候会用到。
4. 向量化:
向量化是对特征提取结果的再加工,目的是增强特征的表示能力,防止模型过于复杂和学习困难,比如对连续的特征值进行离散化,label值映射成枚举值,用数字进行标识。这一阶段将产生一个很重要的文件:label和枚举值对应关系,在预测阶段的同样会用到。
5. 拆分数据集:
需要将数据分为两部分。用于训练模型的第一部分将是数据集的大部分。第二部分将用于评估我们训练有素的模型的表现。通常以8:2或者7:3进行数据划分。不能直接使用训练数据来进行评估,因为模型只能记住“问题”。
6. 模型训练:
进行模型训练之前,要确定合适的算法,比如线性回归、决策树、随机森林、逻辑回归、梯度提升、SVM等等。选择算法的时候最佳方法是测试各种不同的算法,然后通过交叉验证选择最好的一个。但是,如果只是为问题寻找一个“足够好”的算法,或者一个起点,也是有一些还不错的一般准则的,比如如果训练集很小,那么高偏差/低方差分类器(如朴素贝叶斯分类器)要优于低偏差/高方差分类器(如k近邻分类器),因为后者容易过拟合。然而,随着训练集的增大,低偏差/高方差分类器将开始胜出(它们具有较低的渐近误差),因为高偏差分类器不足以提供准确的模型。
7. 模型评估:
训练完成之后,通过拆分出来的训练的数据来对模型进行评估,通过真实数据和预测数据进行对比,来判定模型的好坏。模型评估的常见的五个方法:混淆矩阵、提升图&洛伦兹图、基尼系数、ks曲线、roc曲线。混淆矩阵不能作为评估模型的唯一标准,混淆矩阵是算模型其他指标的基础。完成评估后,如果想进一步改善训练,我们可以通过调整模型的参数来实现,然后重复训练和评估的过程。
8. 文件整理:
模型训练完之后,要整理出四类文件,确保模型能够正确运行,四类文件分别为:Model文件、Lable编码文件、元数据文件(算法,参数和结果)、变量文件(自变量名称列表、因变量名称列表)。
9. 接口封装:
通过封装封装服务接口,实现对模型的调用,以便返回预测结果。