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到底对应的是哪些特征。我觉得应该有函数什么的吧,要不然的话,怎么进行具体的分析呢。这个问题有待解决。
                                                                                                      


  • 相关阅读:
    【2012】笔试面试总结(二)
    sdf数据文件查看小工具
    excel表格中怎样使个别单元格变成只读
    平时收获,供需及取(PPC)
    GDI+ 绘制统计图(2D、3D)
    Com注册
    Pocket PC 录音
    我有自己的"CodeSnippet"了!
    打包Winows Mobile快捷方式中文问题?
    ORA12154: TNS: 无法解析指定的连接标识符问题解决
  • 原文地址:https://www.cnblogs.com/hellojiaojiao/p/10755878.html
Copyright © 2011-2022 走看看