zoukankan      html  css  js  c++  java
  • Python数据挖掘—分类—随机森林

     

    概念

    随机森林(RandomForest):随机森林是一个包含多个决策树的分类器,并且其输出的类别是由个别数输出的类别的众数而定

    优点:适合离散型和连续型的属性数据;对海量数据,尽量避免了过度拟合的问题;对高维数据,不会出现特征选择困难的问题;实现简单,训练速度快,适合 进行分布式计算

     1 import pandas;
     2 
     3 data = pandas.read_csv(
     4     "D:\PDM\5.3\data.csv"
     5 );
     6 
     7 dummyColumns = ["Gender", "ParentEncouragement"]
     8 
     9 for column in dummyColumns:
    10     data[column]=data[column].astype('category')
    11 
    12 dummiesData = pandas.get_dummies(
    13     data, 
    14     columns=dummyColumns,
    15     prefix=dummyColumns,
    16     prefix_sep="=",
    17     drop_first=True
    18 )
    19 dummiesData.columns
    20 
    21 fData = dummiesData[[
    22     'ParentIncome', 'IQ', 'Gender=Male',
    23     'ParentEncouragement=Not Encouraged'
    24 ]]
    25 
    26 tData = dummiesData["CollegePlans"]
    27 
    28 from sklearn.tree import DecisionTreeClassifier
    29 from sklearn.ensemble import RandomForestClassifier
    30 from sklearn.model_selection import cross_val_score
    31 
    32 dtModel = DecisionTreeClassifier()
    33 
    34 dtScores = cross_val_score(
    35     dtModel, 
    36     fData, tData, cv=10
    37 )
    38 
    39 dtScores.mean()
    40 
    41 rfcModel = RandomForestClassifier()
    42 
    43 rfcScores = cross_val_score(
    44     rfcModel, 
    45     fData, tData, cv=10
    46 )
    47 
    48 rfcScores.mean()
    View Code

    决策树评分:

    随机森林评分:

    发现随机森林在不调优的情况下,得分高于决策树模型

    调优:设置:max_leaf_nodes=8

     1 #对连个模型进行调优
     2 dtModel=DecisionTreeClassifier(max_leaf_nodes=8)
     3 
     4 dtScores=cross_val_score(
     5         dtModel,
     6         fData,tData,cv=10)
     7 
     8 dtScores.mean()
     9 
    10 rfcModel=RandomForestClassifier(max_leaf_nodes=8)
    11 
    12 rfcScores=cross_val_score(
    13     rfcModel,
    14     fData,tData,cv=10)
    15 
    16 rfcScores.mean()
    View Code

    决策树评分:

    随机森林评分:

  • 相关阅读:
    数组的push()、pop()、shift()和unshift()方法
    Javascript的函数柯里化
    开闭原则
    字符串相等的判断
    String类常用的方法
    阅读API文档
    String类和常量池
    String基础
    内部类的分类
    内部类的概念
  • 原文地址:https://www.cnblogs.com/U940634/p/9746336.html
Copyright © 2011-2022 走看看