zoukankan      html  css  js  c++  java
  • 集成学习之sklearn中的xgboost基本用法 (转载)

    转载自:https://blog.csdn.net/qq_30868235/article/details/80370060

    1.数据集

          数据集使用sklearn自带的手写数字识别数据集mnist,通过函数datasets导入。mnist共1797个样本,8*8个特征,标签为0~9十个数字。

    ### 载入数据
    from sklearn import datasets # 载入数据集
    digits = datasets.load_digits() # 载入mnist数据集
    print(digits.data.shape) # 打印输入空间维度
    print(digits.target.shape) # 打印输出空间维度

    """
    (1797, 64)
    (1797,)
    """

    2.数据集分割

          sklearn.model_selection中train_test_split函数划分数据集,其中参数test_size为测试集所占的比例,random_state为随机种子(为了能够复现实验结果而设定)。

    ### 数据分割
    from sklearn.model_selection import train_test_split # 载入数据分割函数train_test_split
    x_train,x_test,y_train,y_test = train_test_split(digits.data, # 特征空间
    digits.target, # 输出空间
    test_size = 0.3, # 测试集占30%
    random_state = 33) # 为了复现实验,设置一个随机数

    3.模型相关(载入模型--训练模型--模型预测)

          XGBClassifier.fit()函数用于训练模型,XGBClassifier.predict()函数为使用模型做预测。

    ### 模型相关
    from xgboost import XGBClassifier
    model = XGBClassifier() # 载入模型(模型命名为model)
    model.fit(x_train,y_train) # 训练模型(训练集)
    y_pred = model.predict(x_test) # 模型预测(测试集),y_pred为预测结果

    4.性能评估

          sklearn.metrics中accuracy_score函数用来判断模型预测的准确度。

    ### 性能度量

    from sklearn.metrics import accuracy_score # 准确率
    accuracy = accuracy_score(y_test,y_pred)
    print("accuarcy: %.2f%%" % (accuracy*100.0))

    5.特征重要性

          xgboost分析了特征的重要程度,通过函数plot_importance绘制图片。

    ### 特征重要性
    import matplotlib.pyplot as plt
    from xgboost import plot_importance
    fig,ax = plt.subplots(figsize=(10,15))
    plot_importance(model,height=0.5,max_num_features=64,ax=ax)
    plt.show()

    image

    6.完整代码

    ### load module
    from sklearn import datasets
    from sklearn.model_selection import train_test_split
    from xgboost import XGBClassifier
    from sklearn.metrics import accuracy_score

    ### load datasets
    digits = datasets.load_digits()

    ### data analysis
    print(digits.data.shape) # 输入空间维度
    print(digits.target.shape) # 输出空间维度

    ### data split
    x_train,x_test,y_train,y_test = train_test_split(digits.data,
    digits.target,
    test_size = 0.3,
    random_state = 33)

    ### fit model for train data
    model = XGBClassifier()
    model.fit(x_train,y_train)

    ### make prediction for test data
    y_pred = model.predict(x_test)

    ### model evaluate
    accuracy = accuracy_score(y_test,y_pred)
    print("accuarcy: %.2f%%" % (accuracy*100.0))
    """
    95.0%
    """

  • 相关阅读:
    URLProtocol服务协议
    ODBC、OLEDB和ADO之间的关系 ,以及性能比较
    如何在VS2015查看C#界面窗体里的控件层次
    SpeechVoiceSpeakFlags枚举类型的详细解释
    SQL中遇到多条相同内容只取一条的最简单实现方法
    flink elasticsearch sink table 忽略部分字段开发
    flink elasticsearch source table 集成elasticsearch-hadoop connector开发
    记一次python 协程给合多线程死锁问题
    kubernetes gitlab runner java maven ci/cd 整体方案示例
    某云elasticsearch节点失效,手动重置primary,迁移分区
  • 原文地址:https://www.cnblogs.com/xitingxie/p/11323114.html
Copyright © 2011-2022 走看看