Python 机器学习 - 预测分析核心算法(1)
最近买了本书《Python 机器学习 - 预测分析核心算法》,感觉还挺靠谱的。主要是讲得简单, 对于新手来说特别友好。果然对工程师来说,可能直接上手,比学数学理论还是容易一些。
简单做个笔记
第一章 核心算法概述
介绍两种有效的机器学习方法,惩罚线性回归和集成方法
惩罚线性回归方法
惩罚线性回归是由普通最小二乘法衍生的,主要目的是为了解决最小二乘法容易过拟合的问题。 当可用数据量小于或者等于预测的自由度的时候,很容易产生过拟合。 惩罚线性回归可以减少自由度,使之与数据规模、问题复杂度相匹配
集成方法
集成方法的基本思想是构建多个不同的预测模型,将其输出做某种组合作为最终输出。 单个预测模型叫做基学习器。只要基学习器比随机猜测稍好,继承方法就可以组合出相当好的效果。 集成方法为了实现最广泛的应用,通常将二元决策树作为基学习器
算法的选择
惩罚线性回归的优势在于训练速度和预测速度都很快,能处理大量自由度,但不善于解决复杂问题。 即使面对复杂问题,在早期的特征选择阶段也可以先用惩罚线性回归。
训练的基本步骤
- 提取或组合预测所需特征
- 设定训练目标
- 训练模型
- 评估模型在测试数据上的表现
构造一个机器学习问题
什么是特征,什么是目标 特征提取和特征工程 确定训练后模型性能
第二章 通过理解数据了解问题
数据是按照行和列组织的,通常每行代表一个实例,每一列为一个属性
目标变量也被称为标签、目标、结果、响应等
属性可以分成两类:数值变量和类别 类别有叫做因素变量,特点是不同值之间没有顺序关系,不像数值变量有大小关系,可比较。 许多机器学习算法只能处理数值变量,不能处理类别变量。例如惩罚线性回归算法。
标签是数值的问题叫做回归问题,标签是类别的叫做分类问题。如果分类结果只取 2 个值,叫做二元分类问题, 取多个值,就是多类别分类问题。
新数据集的注意事项
- 行数、列数
- 类别变量的数目,类别的取值范围
- 缺失的值
- 属性和标签的统计特性
使用 Python 的时候会用到的一些类库
这些库都可以通过 pip 安装
- numpy
- pylab 包含了 matplotlib,可以用来方便地绘图
- scipy 开源的 Python 算法和数学工具包
- pandas 数据处理常用的库,处理表格很方便,快速了解一下可以看这里
- sklearn 一些常用的学习算法
通过数据可视化了解数据
平行坐标图
可以参照 这里的代码
交会图
可以参照 这里的代码
热图
可以参照 这里的代码
箱线图
可以参照 这里的代码
数据归一化
最普遍的方法是,将数据都变成均值为 0,标准差为 1 即对每一项执行 item = (item - mean) / std
可以参照 这个文件中 28 行处对数据的归一化
分对数函数归一
x = 1 / (1 + exp(-x)) 可以将很大的负数映射成 0,很大的正数映射成 1,0 映射成 0.5
可以参照 这个文件中 32 行处对数据的归一化