import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score, recall_score, precision_score, f1_score, roc_curve, roc_auc_score, confusion_matrix
from sklearn.ensemble import GradientBoostingClassifier

# 读取数据
data = pd.read_excel('C:\Users\lenovo\Desktop\数据测试\output_data1.xlsx')

# 标准化处理
scaler = StandardScaler()
X = scaler.fit_transform(data.iloc[:, 1:].values)  # 特征矩阵
y = data.iloc[:, 0].values  # 标签向量

# 划分数据集为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 建立模型
model = GradientBoostingClassifier(n_estimators=100, max_depth=3, learning_rate=0.1)

# 训练模型
model.fit(X_train, y_train)

# 预测结果
train_predicted = model.predict(X_train)
test_predicted = model.predict(X_test)

# 输出训练集和测试集的各项指标
print('Train Accuracy: {:.2f}'.format(accuracy_score(y_train, train_predicted)))
print('Train Recall: {:.2f}'.format(recall_score(y_train, train_predicted)))
print('Train Precision: {:.2f}'.format(precision_score(y_train, train_predicted)))
print('Train F1: {:.2f}'.format(f1_score(y_train, train_predicted)))
print('Train AUC: {:.2f}'.format(roc_auc_score(y_train, model.predict_proba(X_train)[:, 1])))
print('Train Confusion Matrix:')
print(confusion_matrix(y_train, train_predicted))

print('Test Accuracy: {:.2f}'.format(accuracy_score(y_test, test_predicted)))
print('Test Recall: {:.2f}'.format(recall_score(y_test, test_predicted)))
print('Test Precision: {:.2f}'.format(precision_score(y_test, test_predicted)))
print('Test F1: {:.2f}'.format(f1_score(y_test, test_predicted)))
print('Test AUC: {:.2f}'.format(roc_auc_score(y_test, model.predict_proba(X_test)[:, 1])))
print('Test Confusion Matrix:')
print(confusion_matrix(y_test, test_predicted))

在上述代码中,我们使用 GradientBoostingClassifier 类建立了一个 Gradient Boosting 模型,并使用 fit() 方法对模型进行训练。在训练完成后,我们使用 predict() 方法对训练集和测试集进行预测,并使用各种指标来评估模型的性能,包括准确率、召回率、精确率、F1 值、AUC 和混淆矩阵等。

Gradient Boosting 模型训练和评估代码示例

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

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