xgb和gbm做回归代码sklearn接口
import numpy as np
import pandas as pd
import re
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.model_selection import train_test_split
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_absolute_error, r2_score
import lightgbm as lgb
import xgboost as xgb
df = pd.read_csv('翼型数据集.csv', encoding='gbk')
col_dict = dict(zip(set(df['翼型名称']), [i for i in range(len(set(df['翼型名称'])))]))
df['翼型名称'] = df['翼型名称'].map(col_dict)
print(f"the data shape is : {df.shape}")
print(df.head())
print(df.columns)
train_x, test_x = train_test_split(df, random_state=100, test_size=0.2, stratify=df['攻角 (degrees)'])
train_y, test_y = train_x['攻角 (degrees)'], test_x['攻角 (degrees)']
train_x = train_x.drop('攻角 (degrees)', axis=1)
test_x = test_x.drop('攻角 (degrees)', axis=1)
model = lgb.LGBMClassifier(
boosting_type='gbdt',
n_estimators=100,
learning_rate=0.1,
max_depth=4,
min_child_weight=1,
subsample=1,
colsample_bytree=1,
random_state=27,
importance_type='gain',
objective='multiclass',
)
model.fit(train_x, train_y, eval_metric="auc_mu", verbose=10, \
eval_set=[(train_x, train_y), (test_x, test_y)], \
)
print(f"the mae is: ", mean_absolute_error([int(i) for i in model.predict(test_x)], test_y))
print(pd.DataFrame({"predict":[int(i) for i in model.predict(test_x)], 'real':test_y}))
xgb_Regressor = xgb.XGBClassifier(
learning_rate=0.01,
n_estimators=100,
max_depth=3,
min_child_weight=1,
gamma=0,
objective='multiclass',
subsample=0.8,
colsample_bytree=0.8,
nthread=4,
scale_pos_weight=1,
seed=27
)
xgb_Regressor.fit(train_x, train_y, eval_metric="auc", verbose=10,
eval_set=[(train_x, train_y), (test_x, test_y)],
)
print(f"the mae is: ", mean_absolute_error(xgb_Regressor.predict(test_x), test_y))