集成学习第二天打卡——使用sklarn构建回归模型
常用的回归模型有:线性回归、回归树、支持向量回归SVR
三种模型对比:
(1)当自变量与因变量之间有明显的线性关系时,传统的回归模型性能优于回归树模型,但是当自变量与因变量之间的关系为非线性且关系复杂时回归树模型更优;
(2)回归树模型更符合人类的决策思维,可解性更强;
(3)回归树模型可以直接做定性的特征,不需要做特殊处理,更简便;
(4)对异常值不敏感,因此当缺失值和异常值时对模型不会产生影响;
(5)回归树模型的越策准确性往往低于回归模型,仍然需要改进;
(6)SVM 的最终决策函数只由少数的支持向量所确定,计算的复杂性取决于支持向量的数目, 而不是样本空间的维数,避免了“维数灾难”。
三种模型实现方式:
(1)线性回归
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))
(2)回归树
from sklearn.tree import DecisionTreeRegressor
reg_tree = DecisionTreeRegressor(criterion="mse",min_samples_leaf=5)
reg_tree.fit(X,y)
reg_tree.score(X,y)
(3)支持向量回归
from sklearn.svm import SVR
from sklearn.preprocessing import StandardScaler
# 标准化数据
from sklearn.pipeline import make_pipeline
# 使用管道,把预处理和模型形成一个流程
reg_svr= make_pipeline(StandardScaler(),SVR(C=1.0,epsilon=0.2))
reg_svr.fit(X,y)
reg_svr.score(X,y)