文章目录
相关阅读:
- 【机器学习竞赛+笔记干货】工业蒸汽量预测:赛题理解篇(一)
- 【机器学习竞赛+笔记干货】工业蒸汽量预测:数据探索篇(二)
- 【机器学习竞赛+笔记干货】工业蒸汽量预测:特征工程篇(三)
- 【机器学习竞赛+笔记干货】工业蒸汽量预测:模型训练篇(四)
- 【机器学习竞赛+笔记干货】工业蒸汽量预测:模型验证篇(五)
- 【机器学习竞赛+笔记干货】工业蒸汽量预测:特征优化篇(六)
- 【机器学习竞赛+笔记干货】工业蒸汽量预测:模型融合篇(七)
比赛地址:工业蒸汽量预测_学习赛_天池大赛
4 模型训练
4.1 回归及相关模型
4.1.3 线性回归模型
假定因变量Y与自变量X呈线性相关,则可以采用线性模型找出两者的关系。
1. 一元线性回归模型
一元线性回归模型使用单一特征来预测响应值,拟合的最佳曲线通过最小化预测值和真实值之间的误差得到。
2. 多元线性回归模型
多元线性回归模型是利用多个自变量估计因变量,从而解释和预测因变量的值。
多元线性回归模型的一般形式:
y
=
β
0
+
β
1
x
1
+
β
2
x
2
+
⋯
+
β
p
x
p
+
ε
y=\beta_0+\beta_1x_1+\beta_2x_2+\dots+\beta_px_p+\varepsilon
y=β0+β1x1+β2x2+⋯+βpxp+ε
3. 线性回归调用方法
切分数据集:
from sklearn.model_selection import train_test_split
train_data,test_data,train_target,test_target=train_test_split(train,target,test_size=0.2,random_state=0)
调用线性回归模型进行预测:
from sklearn.metrics import mean_sqared_error
from sklearn.linear_model import LinearRegression
clf=LinearRegression()
clf.fit(train_data,tarin_target)
test_pred=clf.predit(test_data)
score=mean_sqared_error(test_target,clf.predit(test_data))
print("LinearRegression:",score)
4.1.4 K近邻回归模型
1. K近邻回归介绍
通过找出某个样本的k个最近邻居,将这些邻居的某个属性的平均值付给该样本。
2. K近邻回归调用方法
from sklearn.neighbors import KNeighborsRegressor
clf.KNeighborsRegressor(n_neighbors=3)
clf.fit(train_data,train_target)
test_pred=clf.predit(test_data)
score=mean_sqared_error(test_target,clf.predit(test_data))
print("KNeighborsRegressor:",score)
4.1.5 决策树回归模型
1. 决策树回归模型介绍
根据一定准则,将一个空间划分为若干个子空间,然后利用子空间内所有点的信息表示这个子空间的值。
划分的点在空间中有近似的分布和值的相似性,利用这些划分区域的均值或者中位数代表这个区域的预测值。
3. 决策树回归方法调用
from sklearn.tree import DecisionTreeRegressor
clf.DecisionTreeRegressor()
clf.fit(train_data,train_target)
test_pred=clf.predit(test_data)
score=mean_sqared_error(test_target,clf.predit(test_data))
print("DecisionTreeRegressor:",score)
4.1.6 集成学习回归模型
1. 随机森林回归模型
随机森林就是通过集成学习(Ensemble Learning)的思想将多棵树集成的一种算法,基本单元是决策树。
在回归问题中,随机森林输出所有决策树输出的平均值。
主要优点:
- 在当前所有算法中,具有极好的准确率。
- 能够有效地运行在大数据集上。
- 能够处理具有高维特征的输入样本,而且不需要降维。
- 能够评估各个特征在分类为问题上的重要性。
- 在生成过程中,能够获取到内部生成误差的一种无偏估计。
- 对于缺省值问题也能够获得很小的结果。
from sklearn.ensemble import RandomForestRegressor
clf.RandomForestRegressor(n_estimators=200) # 200棵树
clf.fit(train_data,train_target)
test_pred=clf.predit(test_data)
score=mean_sqared_error(test_target,clf.predit(test_data))
print("RandomForestRegressor:",score)
2. LightGBM回归模型
LightGBM(Light Gradient Boosting Machine)支持高效率的并行训练,具有更快的训练速度、更低的内存消耗、更好地准确率、分布式支持,可以快速处理海量数据的特征。
import lightgbm as lgb
clf.lgb.LGBMRegressior(learning_rate=0.01,max_depth=-1,n_estimators=5000,boosting_type='gbdt',random_state=2019,objective='regression')
clf.fit(X=train_data,y=train_target,eval_metric='MSE',verbose=50)
score=mean_sqared_error(test_target,clf.predit(test_data))
print("LGBMRegressior:",score)
3. 其他常用模型
- 弹性网络(Elastic Net)回归是在参数空间中对L1和L2范数进行正则化的线性回归模型。可以理解为岭回归和Lasso回归的结合,主要用在正则化融合的技术中。
- SVR(Support Vector Regression)是支持向量机在线性回归模型中的应用。该类模型的优势主要是在采用核函数后,可以进行自动升维拟合,提高拟合效果,并且参数计算量并没有增加。
4.2 赛题模型训练
4.2.3 多元线性回归
- 优点:模型简单,部署方便,回归权重可以用于结果分析;训练快。
- 缺点:精度低,特征存在一定的共线性问题。
- 使用技巧:需要进行归一化处理,建议进行一定的特征选择,尽量避免高度相关的特征同时存在。
4.2.4 K近邻回归
- 优点:模型简单,易于理解,对于数据量小的情况方便快捷,可视化方便。
- 缺点:计算量大,不适合数据量大的情况;需要调参数。
- 使用技巧:特征需要归一化,重要的特征可以适当加一定比例的权重。
4.2.5 随机森林回归
- 优点:使用方便,特征无需做过多变换;精度较高;模型并行训练快。
- 缺点:结果不容易理解。
- 使用技巧:参数调节,提高精度。
4.2.6 LGB模型回归
- 优点:精度高。
- 缺点:训练时间长,模型复杂。
- 使用技巧:有效的验证集防止过拟合;参数搜索。