1. 数据处理
-
转换数据格式
比如将名称用数字表示、浮点数转为整数 -
特征值的类型
离散型还是连续型,这会影响算法的选择 -
特征值的提取
去掉没用的数据比如 ID 值
去掉发生频率太低的特征
直接提取有用的特征
需要的话整合特征,比如
取一段时间内的均值做特征值
取两列数据的和做特征值
取两列数据的皮尔逊相关系数 (Pearson Correlation Coefficient) 做特征值 -
特征值编码
比如一个特征有5个值,自然顺序编码可以用 1~5 代替,独热编码用 00001、00010 表示 -
特征值缺失:
照样使用、扔掉、还是填补
填补方式
取特殊值如 -1、0、Null 填补
取均值填补
极大似然估计、建模预测、高维映射、多重插补等 -
标签值缺失
扔掉 -
重复数据
扔掉还是照样使用 -
异常值 (outlier) 处理
扔掉、鲁棒回归、或者使用对数或者高斯核对其转换 -
归一化
为防有些特征值权重太大,进行归一比如通过
可以转化为 0 到 1 的值 -
标准化
## 减去平均值,再除以方差 -
正则化
作用是降维?减少特征? -
降维
用于减少特征数量或是样本数量,只保留重要的数据,比如算法 PCA 和 SVD
PCA(主成分分析)
取 N 个方差最大且相互正交的方向,进行矩阵转换,步骤如下
1. 先计算数据集的协方差矩阵 covMat
2. 再通过下面的代码求 covMat 的特征值向量和特征向量矩阵
3. 取最大的 N 个特征值
4. 使用新的特征向量矩阵将原始数据集矩阵转换到只有 N 个特征值的新的数据集
SVD (奇异值分解)
取 N 个最大的奇异值,进行矩阵转换,步骤如下
1. 分解原数据矩阵 ,代码如下
2. 其中 只有对角线有值,取最大的 r 个值为新矩阵 SigmaR,则
3. 然后通过下面代码对原数据进行压缩
-
存储空间
可否使用稀疏矩阵减少空间 -
非均衡分类
主要以下两种
1. 正反例数目相差大,可以用过抽样和欠抽样方法来调节正反例数目
2. 算法要考虑分类错的代价,如垃圾邮件分到收件箱和正常邮件分到垃圾箱后果不同
混淆矩阵
: 预测 i 类型结果出现的是 j 类型的次数,完美的分类器非对角元素均为 0
: 预测 +1 结果是 +1
: 预测 -1 结果是 -1
: 预测 +1 结果是 -1
: 预测 -1 结果是 +1
正确率:
## FN 代价比较小则更关注正确率
召回率
## FN 代价比较大则更关注召回率
ROC 曲线
横轴是 、纵轴是
曲线下的面积给出的是分类器的平均性能值 -
数据可视化
选择哪些特征,用什么图形显示,当特征太多时很难在一个图中显示出来
2. 算法选择
- 想要预测目标变量的值,可以选择监督学习算法,进一步确定目标变量类型,如果目标变量是离散型可以选择分类器算法,如果目标变量是连续型的数值则需要选择回归算法
- 不用预测目标变量的值,可以选择无监督学习算法,进一步分析是否需要将数据划分为离散的组,如果这是唯一需求,则使用聚类算法,如果还要估计数据与每个分组的相似程度,则需要使用密度估计算法
- 多数情况下,上面的方法都能帮助选择恰当的机器学习算法,但这也并非一成不变
- 我们只能在一定程度上缩小算法的选择范围,一般并不存在最好的算法或者可以给出最好结果的算法,一般说来发现最好算法的关键环节是反复试错的迭代过程
3. 算法验证
划分数据集
训练集和测试集:一个用于训练,一个用于测试,训练集要更大,两个数据集要有随机性
做交叉验证,比如:
1. 数据分为 K 个子集,一个作测试集,其余作训练集,重复 K 次做交叉验证
2. 数据分为 K 个子集,每个又分 S0,S1 子集,用 S0 训练,用 S1 测试,再反过来用
3. 每个样本单独做测试集,其余 n-1 个样本作训练集,重复 n 次SRM 和 ERM
泛化能力用于衡量算法在样本空间上的表现
如果过于专注于样本,会出现过拟合的现象
如果过于罔顾样本,又会出现欠拟合的现象
所以需要张弛有度,SRM 和 ERM 就是研究这个的
损失函数
记为 针对单个具体的样本,表示预测值与真实值之间的差距
0-1 损失函数
平方损失函数
绝对损失函数
逻辑损失函数
对数损失函数
为样本数, 为类别数
表示类别 j 是否是输入实例 的真实类别
为预测输入实例 属于类别 j 的概率
不同的损失函数用于不同的算法
比如平方损失函数和绝对损失函数通常用于回归,其他几种用于分类
ERM
Empirical Risk Minmization,经验风险最小化
ERM 就是最小化 R,但 R 太小容易出现过拟合的情况
SRM
Structural Risk Minmization,结构风险最小化
是一个系数, 表示模型 的复杂度
相当于
如果 ERM 越小就意味着函数复杂度也就是 越大
这样求出来的使得 R 最小的模型就是一个比较平衡的模型-
最小化目标函数
ERM 公式和 SRM 公式也可以被称为目标函数,可改写为
其中
L 代表损失函数用于衡量模型对数据的拟合程度
O 可称为正则化项,用于惩罚复杂的模型,防止过拟合,常用 L2 正则和 L1 正则L1-Norm 和 L2-Norm,中文称 L1 正则化和 L2 正则化,或 L1 范数和 L2 范数
L1 正则化是指向量中各个元素的绝对值之和,通常表示为
L2 正则化是指向量中各个元素的平方和然后再求平方根,通常表示为
L1 正则化可以产生稀疏权值矩阵,即产生一个稀疏模型,可以用于特征选择
L2 正则化可以防止模型过拟合 (一定程度上,L1 也可以防止过拟合)比如 Lasso 回归就使用的 L1,而 Ridge 回归(岭回归)就使用的 L2
训练数据就是最小化目标函数 Obj
多数时候是求梯度,通过一定步长沿着梯度前进,最终实现最小化 Obj 偏差
预测值和实际值的差距方差
预测值的变化范围皮尔逊相关系数
可用于计算预测结果和真实结果之间的相关性