参考魏贞原老师的《机器学习Python实践》一书代码进行记录,涉及数据处理及基本数据处理方法比较多
- 进行糖尿病数据的可视化
- 使用MinMaxScaler类来调整数据尺度
将数据聚集到0附近,方差为1
- 正态化数据
使数据符合正正态分布 中位数为0,方差为1
- 将数据标准化
将每一行数据距离处理成1 适合处理稀疏数据
- 二值化数据
大于阈值数据设置为1 小于阈值数据设置为0
-
单变量特征选择
-
递归特征消除
使用一个基模型来进行多轮训练, 每轮训练后消除若干权值系数的特征, 再基于新的特征集进行下一轮训练
-
PCA主成分分析(无监督)
-
LDA(有监督)
-
特征重要性
通过决策树计算特征的重要性
- 划分训练集和测试集
- K折交叉验证
- 弃一交叉验证分离(计算成本较高)
- 重复随机分离评估数据集与训练数据集
- k折分类准确度
- 对数损失函数
- AUC图
- 混淆矩阵
- 分类报告
- 回归算法矩阵:波士顿房价数据集
- 平均绝对误差
- 均方误差
- 决定系数R^2
- 线性算法
- 逻辑回归
- LDA算法
- 非线性算法
- KNN
- Bayes
- DecisionTree
- SVM
- 线性回归算法
- 岭回归
- Lasso回归
- 弹性网络回归
- 非线性算法
- KNN回归
- 回归树
- SVM回归
- 机器学习算法的比较
- 数据准备和生成模型的Pipeline
- 使用Pipeline特征选择
集成算法:将多种机器学习算法组合起来,使计算出来的结果更好
- 装袋算法(Bagging)
先将训练集分离成多个子集,然后通过各个子集训练多个模型。装袋算法在具有较大方差时比较有用
- 装袋决策树(Bagged Decision Trees)
- 随机森林(Random Forest)
- 极端随机数(Extra Trees):使用所有的样本去构建每棵决策树
- 提升算法(Boosting)
训练多个模型并组成一个序列,序列中的每一个模型都会去修正前一个模型的错误
- AdaBoost算法
- 随机梯度提升算法(SGB)Stohastic Gradient Boosting
- 投票算法(Voting)
训练多个模型,并采用样本统计来提高模型的准确度 通过创建两个或者多个算法模型,利用投票算法将这些算法包装起来,计算各个子模型的平均预测状况
两种自动寻找最优化参数的算法:
- 网格搜索优化参数
通过遍历已定义参数的列表,来评估算法的参数,从而找到最优参数 适用于3、4个超参数(或更少)
- 随机搜索优化参数
适用于参数较多的情况 适用固定次数的迭代,采用随机采样分布的方式搜索合适的参数
- 通过pickle序列化和反序列化机器学习模型
- 通过joblib序列化和反序列化机器学习模型
joblib序列化时会采用Numpy的格式保存数据
通过对波士顿房价数据集进行处理,使用机器学习回归算法进行比较,同时使用各集成算法进行对比实验
通过对声呐数据集进行处理,使用机器学习分类算法进行比较,同时使用各集成算法进行对比实验
通过对新闻文本数据集进行处理,使用TF-IDF算法进行处理,使用机器学习分类算法进行比较,同时使用各集成算法进行对比实验