天池工业蒸汽比赛代码复现,采用模型LR+GBR,并融合

本文详细复现了天池工业蒸汽比赛中的高分解决方案,主要结合了逻辑回归(LR)和梯度提升回归(GBR)两种模型进行融合,通过特征工程和模型调参,实现了预测性能的提升。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import numpy as np
import pandas as pd
from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
from sklearn import linear_model
from sklearn.ensemble import ExtraTreesRegressor
from sklearn.feature_selection import SelectFromModel
from sklearn.decomposition import PCA
from sklearn.ensemble import GradientBoostingRegressor
zhengqi_train = pd.read_table('/Users/soushigou/zhengqi_train.txt',encoding='utf-8')
zhengqi_test = pd.read_table('/Users/soushigou/zhengqi_test.txt',encoding='utf-8')


X=np.array(zhengqi_train.drop(['target'],axis=1))
y=np.array(zhengqi_train.target)
print(X.shape)
print(y.shape)


X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.3,random_state=0)
print(len(X_train))
print(len(X_test))

#PCA数据处理-降维
pca=PCA(0.95)
pca.fit(X)
X_pca=pca.transform(X)
X1_pca=pca.transform(zhengqi_test)

X_train,X_test,Y_train,Y_test=train_test_split(X_pca,y,test_size=0.3,random_state=0)

#线性回归
clfL=linear_model.LinearRegression()
clfL.fit(X_train,Y_train)
y_true,y_pred=Y_test,clfL.predict(X_test)
print(mean_squared_error(y_true,y_pred))
ans_Liner=clfL.predict(X1_pca)
print(ans_Liner.shape)

'''GBR'''
#这里使用GBR
# 分离出训练集和测试集,并用梯度提升回归训练
X_train, X_test, Y_train, Y_test = train_test_split(X_pca, y, test_size=0.2, random_state=40)
myGBR = GradientBoostingRegressor(alpha=0.9, criterion='friedman_mse', init=None,
                                  learning_rate=0.03, loss='huber', max_depth=15,
                                  max_features='sqrt', max_leaf_nodes=None,
                                  min_impurity_decrease=0.0, min_impurity_split=None,
                                  min_samples_leaf=10, min_samples_split=40,
                                  min_weight_fraction_leaf=0.0, n_estimators=300,
                                  presort='auto', random_state=10, subsample=0.8, verbose=0,
                                  warm_start=False)
myGBR.fit(X_train, Y_train)
Y_pred = myGBR.predict(X_test)
print(mean_squared_error(Y_test, Y_pred))
ans_GBR = myGBR.predict(X1_pca)
print(ans_GBR.shape)

final_ans=(0.4*ans_Liner+0.6*ans_GBR)
pd.DataFrame(final_ans).to_csv('./mergeGBR&Lasso&NN.txt',index=False, header=False)
print('over')





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值