机器学习概述
机器学习与深度学习的区别
- 机器学习是实现人工智能的一种方法, 简单来说,机器学习就是使用算法分析数据(需要我们自己找特征值),从中学习并做出推断或预测。与传统的使用特定指令集手写软件不同,我们使用大量数据和算法来“训练”机器,由此带来机器学习如何完成任务
- 深度学习:深度学习是一种特殊的机器学习,深度与机器最大区别是机器学习需要人工寻找给定特征值,深度学习不用的,机器会自己分析特征值
机器学习开发步骤
- 数据的采集 (本身数据、爬虫爬取数据)
- 数据清洗 (噪音、空值、无效特征、日期格式转化)
- 特征的选择 (从多个特征中,分析和选择合适的特征)
- 模型的训练集和测试集:一般按照8:2 或者 7:3来划分,然后用训练数据集来训练模型,训练出来后在用测试数据集来测试模型的准确度
- 模型的选择 (根据不同的需求、问题领域、数据量大小、训练时长、模型的准确度等都有关)
- 模型的性能评估和优化 (训练时长、数据集是否足够多、预测场景性能要求、预测的精准度…)
- 模型的使用 (训练好的模型把参数保存起来,方便在下一次在预测数据时使用)
数据集与特征工程数据集的格式
- 推荐采用csv格式,pandas天生对csv有良好的支持
- mysql性能瓶颈,读取速度有问题
- Kaggle数据集:大数据、真实数据 https://www.kaggle.com/
- scikitlearn:数据量小、方便学习:https://scikitlearn.org/stable/
- UCI特点:收录了360个数据集,覆盖科学、生活、经济等专业领域、数据量几十万:http://archive.ics.uci.edu/ml/datasets.html
特征工程定义
特征工程定义:是将原始数据转化为更好的代表预测模型的潜在问题的特征的过程,从而提高了未知数据的预测准确性。数据和特征决定了机器学习的上限,而模型和算法知识逼进这个上限而已。1. 如果将原始的数据处理成合格的数据输入(特征工程要解决问题)2. 某一列特征很重要,但是样本里面这列的值都一样,那么它还很重要吗?3. 思考:在各种机器学习的竞赛中,第一名与第二名的差距到底在哪里
几种常见特征工程实现
通过特定的统计方法(数学方法)将数据转换成算法要求的数据1. 数值类型预处理:1:标准化缩放、归一化2. 时间类型:时间的序列、切分3. 类别类型数据:onehot编码 (分类, 0 1)
推荐标准化处理
- 对于归一化来说:如果出现了异常点,影响了最大值与最小值,那么结果显然会发生改变2. 对于标准化来说:如果出现异常点,由于具有一定数据量,少量的异常点对于平均值的影响并不大,从而方差改变较小3. 方差可以用来衡量与中心偏离的程度,用来衡量一批数据的波动大小,方差越大,说明数据的波动越大,越不稳定4. 如果var方差为0,则说明某特征列的值都相同,那么在后续进行此机器学习时此特征列可以忽略