zoukankan      html  css  js  c++  java
  • 使用plot_importance绘制特征重要性曲线


    代码如下所示:
    # -*- coding: utf-8 -*-
    #导入需要的包
    import matplotlib.pyplot as plt
    from sklearn import datasets
    from sklearn.model_selection import train_test_split
    from sklearn.metrics import roc_auc_score
    from xgboost import XGBClassifier
    from xgboost import plot_importance
    
    ### 加载数据集,这里直接使用datasets包里面的波士顿房价数据
    boston=datasets.load_breast_cancer()
    #输出数据集的形状,该数据集里面有569个样本,每个样本有30个特征(569, 30)
    print(boston.data.shape)
    #输出标签的个数为 569
    print(boston.target.shape)
    # 使用train_test_split()函数对训练集和测试集进行划分,第一个参数是数据集特征,第二个参数是标签,第三个为测试集占总样本的百分比
    x_train,x_test,y_train,y_test = train_test_split(boston.data,
                                                     boston.target,
                                                     test_size = 0.3,
                                                     random_state = 33)
    #使用XGBoost进行训练
    model = XGBClassifier()
    model.fit(x_train,y_train)
    
    # 绘制重要性曲线,max_num_feature参数设置输出前20重要的特征()
    plot_importance(model,max_num_features=20)
    plt.show()
    
    # 输入测试样本做预测
    y_pred=model.predict_proba(x_test)[:,1]
    
    # 输出AUROC的值
    roc=roc_auc_score(y_test,y_pred)
    print("The AUROC=%f",roc)
    """
    0.9841
    """
    运行结果:

    其中,f2,f3,f4...这些是默认的按从0开始对特征的编号。但是这样的话,我们不知道这些f2,f3到底对应的是哪些特征。我觉得应该有函数什么的吧,要不然的话,怎么进行具体的分析呢。这个问题有待解决。
                                                                                                      


  • 相关阅读:
    Hadoop.2.x_集群初建
    Hadoop.2.x_网站PV示例
    Hadoop_简单操作ZooKeeper
    Hadoop.2.x_时间服务器搭建(CentOs6.6)
    Linux_Scp命令
    Java_Eclipse_Maven环境搭建
    Java_Eclipse_Maven插件部署
    HDU 1394 线段树or 树状数组~
    hdu
    HDU 4070 + 赤裸裸的贪心~~
  • 原文地址:https://www.cnblogs.com/hellojiaojiao/p/10755878.html
Copyright © 2011-2022 走看看