参考:开源项目:机器学习集成学习与模型融合(基于python)
httpshttps://github.com/datawhalechina/team-learning-data-mining/tree/master/EnsembleLearning@[TOC]
机器学习项目流程
“ 数据决定机器学习结果的上限,而算法只是尽可能的逼近这个上限”。
- 理解实际业务场景,抽象为机器学习能处理的数学问题
- 收集数据,数据预处理
- 特征工程
- 模型构建
- 模型测试评估
- 模型部署与整合
- 迭代优化
Boston房价案例
以下会使用sklearn构建一个回归项目,案例中我们直接选择Boston房价数据集,实际在工程中数据的收集和处理是很大的一部分工作,通过这个现有的数据集可以更好了解这个过程,并上手sklearn相关操作,避免在数据处理上花费较大时间。
1. 收集数据集并选择合适的特征
from sklearn import datasets
boston = datasets.load_boston() # 返回一个类似于字典的类
X = boston.data
y = boston.target
features = boston.feature_names
boston_data = pd.DataFrame(X,columns=features)
boston_data["Price"] = y
boston_data.head()
2. 选择度量模型性能的指标
即选取合适损失函数,评估模型的预测值和我们的实际真实值之间的差异。这个案例我们使用MSE均方误差为模型的性能度量指标。
3. 选择具体的模型并进行训练
from sklearn import linear_model # 引入线性回归方法
lin_reg = linear_model.LinearRegression() # 创建线性回归的类
lin_reg.fit(X,y) # 输入特征X和因变量y进行训练
print("模型系数:",lin_reg.coef_) # 输出模型的系数
print("模型得分:",lin_reg.score(X,y)) # 输出模型的决定系数R^2
线性回归的推广
在线性回归中,因变量和特征之间的关系往往并不是简单的线性关系,我们需要推广线性回归模型,以更好拟合。
-
多项式回归
对于多项式的阶数d不能取过大,一般不大于3或者4, -
广义可加模型(GAM)
-