import pandas as pd
import xgboost as xgb
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report
from sklearn.metrics import mean_squared_error
from sklearn.preprocessing import LabelEncoder

# 读取数据
data = pd.read_excel('处理后的数据.xlsx')

# 提取特征属性和目标属性
x = data[['特征1', '特征2', '特征3', '特征4', '特征5', '特征6', '特征7', '特征8', '特征9']]  # 特征属性
y = data['类别']  # 目标属性

# 划分训练集和测试集
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.3)

# 对目标变量进行编码
label_encoder = LabelEncoder()
y_train = label_encoder.fit_transform(y_train)
y_test = label_encoder.transform(y_test)

# XGBoost分类器
xgb_n_clf = xgb.XGBClassifier(
    max_depth=12,
    learning_rate=0.1,
    reg_lambda=1,
    n_estimators=150,
    subsample=0.9,
    colsample_bytree=0.9,
    random_state=0,
    eval_metric='logloss'
)
xgb_n_clf.fit(x_train, y_train)

# 预测训练集的类别
y_pred_train = xgb_n_clf.predict(x_train)

# 输出训练集的分类报告和均方误差
print(classification_report(y_train, y_pred_train))
mse = mean_squared_error(y_train, y_pred_train)
print('均方误差:', mse)

修改说明:

  1. 将导入的库放在代码开头,方便查看所需的库;
  2. 删除了不必要的导入库和变量;
  3. 将数据读取、特征提取、划分训练集和测试集、目标变量编码等步骤放在一起;
  4. 将分类器训练和预测放在一起,方便查看训练集的分类报告和均方误差。
使用XGBoost进行分类预测并评估模型性能

原文地址: http://www.cveoy.top/t/topic/f1YJ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录