分类模型的完整流程及Python实现

1、加载函数和数据集

import numpy as np
from sklearn.datasets import load_breast_cancer
from sklearn.svm import SVC
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
import matplotlib.pyplot as plt
cancer = load_breast_cancer()
cancer_data = cancer['data']
cancer_target = cancer['target']
cancer_names = cancer['feature_names']

加载自带数据集,并提取X和y。

2、将数据划分为训练集测试集

cancer_data_train,cancer_data_test, \
cancer_target_train,cancer_target_test = \
train_test_split(cancer_data,cancer_target,
      test_size = 0.2,random_state = 22)

训练集为80%,测试集为20%,设置有随机化状态,使得每次运行时提取的数据是相同的。

3、数据标准化

stdScaler = StandardScaler().fit(cancer_data_train)
cancer_trainStd = stdScaler.transform(cancer_data_train)
cancer_testStd = stdScaler.transform(cancer_data_test)

从训练集中提取数据标准化规则,并应用于训练集和测试集。

4、建立分类模型

svm = SVC().fit(cancer_trainStd,cancer_target_train)

调用了SVC模型,并使用了默认参数。

5、进行预测

cancer_target_pred = svm.predict(cancer_testStd)

6、输出预测结果混淆矩阵

from sklearn.metrics import confusion_matrix
import seaborn as sns

cm = confusion_matrix(cancer_target_test, cancer_target_pred)
heatmap = sns.heatmap(cm, annot=True, fmt='d')
heatmap.yaxis.set_ticklabels(heatmap.yaxis.get_ticklabels(), rotation=0, ha='right')
heatmap.xaxis.set_ticklabels(heatmap.xaxis.get_ticklabels(), rotation=45, ha='right')
plt.ylabel("true label")
plt.xlabel("predict label")
plt.show()

预测对的结果数目为: 40+71=111
预测错的结果数目为: 0+3=3

7、输出评价指标值

from sklearn.metrics import accuracy_score,precision_score, \
recall_score,f1_score,cohen_kappa_score
print('使用SVM预测breast_cancer数据的准确率为:',
      accuracy_score(cancer_target_test,cancer_target_pred))
print('使用SVM预测breast_cancer数据的精确率为:',
      precision_score(cancer_target_test,cancer_target_pred))
print('使用SVM预测breast_cancer数据的召回率为:',
      recall_score(cancer_target_test,cancer_target_pred))
print('使用SVM预测breast_cancer数据的F1值为:',
      f1_score(cancer_target_test,cancer_target_pred))
print('使用SVM预测breast_cancer数据的Cohen’s Kappa系数为:',
      cohen_kappa_score(cancer_target_test,cancer_target_pred))

8、输出评价报告

from sklearn.metrics import classification_report
print('使用SVM预测breast_cancer数据的分类报告为:','\n',
      classification_report(cancer_target_test,
            cancer_target_pred))

9、输出ROC曲线

from sklearn.metrics import roc_curve
## 求出ROC曲线的x轴和y轴
fpr, tpr, thresholds = \
roc_curve(cancer_target_test,cancer_target_pred)
plt.figure(figsize=(10,6))
plt.xlim(0,1) ##设定x轴的范围
plt.ylim(0.0,1.1) ## 设定y轴的范围
plt.xlabel('False Postive Rate')
plt.ylabel('True Postive Rate')
plt.plot(fpr,tpr,linewidth=2, linestyle="-",color='red', label='ROC curve')
plt.plot([0, 1], [0, 1], color='navy', lw=lw, linestyle='--')
plt.legend(loc="lower right")
plt.show()

  • 20
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用Python实现xgboost分类模型,首先需要导入两个Python库:xgboost和sklearn.metrics。这两个库提供了实现xgboost分类模型所需的函数和方法。 接下来,我们需要训练模型并评估其准确性。可以使用训练集对模型进行训练,并使用测试集评估模型的准确性。一种常用的评估指标是准确率,即分类正确的样本数与总样本数的比值。通过使用sklearn.metrics库中的accuracy_score方法,可以计算出模型的准确率。 在获得了训练好的模型后,我们还可以可视化该模型的决策树。通过导入matplotlib库和graphviz库,可以使用xgb.plot_tree方法来输出决策树。该方法的第一个参数是训练好的模型,第二个参数表示要输出的决策树的索引,第三个参数(可选)用于设置决策树的方向。 通过这个过程,我们可以使用Python实现xgboost分类模型,并得到模型的准确率以及决策树的可视化结果。希望对您有所帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [XGBoost 分类模型Python实现](https://blog.csdn.net/Oscar6280868/article/details/81117567)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值