机器学习(二)
简介:
机器学习(二)本文只提供机器学习整体框架类, 方法与函数的使用请自行查看官方API机器学习的步骤数据采样(过采样与下采样)下采样:目前不知道有第三方库实现, 自己实现的思路: 通过随机函数生成下标列表, 将下标连接在一起生成新的样本集合过采样(更常用一些, 因为过采样的数据量...
机器学习(二)
本文只提供机器学习整体框架
类, 方法与函数的使用请自行查看官方API
机器学习的步骤
数据采样(过采样与下采样)
- 下采样:
- 目前不知道有第三方库实现, 自己实现的思路: 通过随机函数生成下标列表, 将下标连接在一起生成新的样本集合
- 过采样(更常用一些, 因为过采样的数据量比下采样的数据量大):
- imblearn中有实现: over_sampling模块SMOTE算法对象的构造方法返回下采样对象, 调用下采样对象的fit_sample方法得出过采样样本
- 如果标签各个值的个数相差不大, 不需要使用下采样或者过采样
特征提取(从数据集合中提取出b有用的特征)
缺失值计算
- data_frame = data_frame[column_name].dropna(), 副作用: 样本数量的减少
- data_frame = data_frame[column_name].fillna(new_value), 关键在于new_value的选择, 一般有均值, 出现次数最多的值
特征选取
- sklearn中有实现: feature_selection模块SelectKBest的构造方法返回SelectionKBest对象, 调用该对象的fit_transform方法
划分数据集和训练集
- sklearn中的实现: train_test_split函数实现从原始数据集到一个训练集和一个标签集(一般是一个一维的, 注意: 常见的矩阵是二维的, 调用ravel方法降维)
- 将训练集进行K折叠交叉验证, sklearn中的实现: KFold和StratifiedKFold, 在sklearn中有许多的算法对象在构造时就内部实现了交叉验证, 此时KFold与Stratified就无需调用了, 如GridSearchCV, cross_val_score
训练
- sklearn中的实现
- 每一个算法对象调用fit方法
- 每一个算法对象调用score方法, score是对fit的封装, 放回算法的精度
预测与评估
- sklearn中实现:
- predict, predict_proba
- score