zoukankan      html  css  js  c++  java
  • 随机森林算法实例

    根据成年人数据集来预测一个人的收入

    1.准备数据集

    我下载好了一个成年人数据集,从百度云下载

    链接:https://pan.baidu.com/s/10gC8U0tyh1ERxLhtY8i0bQ 
    提取码:4zzy 
    

    准备好了数据集,那就把这个数据集与你的jupyter notebook放在同一目录.如果你是直接打开命令提示符启动jupyter notebook那么路径为: 

    或者你也可以在D盘创建一个目录并在这个目录启动jupyter notebook,把数据集放入其中

    2.在jupyter notebook中导入这个数据集

    #############################  随机森林实例  #######################################
    
    #导入pandas库
    import pandas as pd
    #导入数据集拆分工具
    from sklearn.model_selection import train_test_split
    from sklearn import tree,datasets
    #用pandas打开csv文件
    data = pd.read_csv('adult.csv',header=None,index_col=False,names=['年龄','单位性质','权重','学历','受教育时长','婚姻状况','职业','家庭情况','种族','性别','资产所得','资产损失','周工作时长','原籍','收入'])
    #为了方便展示,我们选取其中一部分数据
    data_lite = data[['年龄','单位性质','学历','性别','周工作时长','职业','收入']]
    #下面看一下数据的前五行是不是我们想要的结果
    display(data_lite.head())
    

    3.用get_dummies处理数据

    #使用get_dummies将文本数据转化为数值
    data_dummies = pd.get_dummies(data_lite)
    #对比样本原始特征和虚拟变量特征
    print('样本原始特征:
    ',list(data_lite.columns),'
    ')
    print('虚拟变量特征:
    ',list(data_dummies.columns))
    

    #显示数据集中的前5行
    data_dummies.head()
    

    #定义数据集的特征值
    features = data_dummies.loc[:,'年龄':'职业_ Transport-moving']
    #将特征数值赋值为X
    X = features.values
    #将收入大于50K作为预测目标
    y = data_dummies['收入_ >50K'].values
    print('
    
    
    ')
    print('代码运行结果')
    print('====================================
    ')
    #打印数据形态
    print('特征形态:{} 标签形态:{}'.format(X.shape,y.shape))
    print('
    ====================================')
    print('
    
    
    ')
    
    代码运行结果
    ====================================
    
    特征形态:(32561, 44) 标签形态:(32561,)
    
    ====================================

    4.用决策树建模并作出预测

    #将数据集拆分为训练集和测试集
    X_train,X_test,y_train,y_test = train_test_split(X,y,random_state=0)
    #用最大深度为5的随机森林拟合数据
    go_dating_tree = tree.DecisionTreeClassifier(max_depth=5)
    go_dating_tree.fit(X_train,y_train)
    print('
    
    
    ')
    print('代码运行结果')
    print('====================================
    ')
    #打印数据形态
    print('模型得分:{:.2f}'.format(go_dating_tree.score(X_test,y_test)))
    print('
    ====================================')
    print('
    
    
    ')
    
    代码运行结果
    ====================================
    
    模型得分:0.80
    
    ====================================
    #将Mr Z的数据输入给模型
    Mr_Z = [[37, 40,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0]]
    #使用模型做出预测
    dating_dec = go_dating_tree.predict(Mr_Z)
    print('
    
    
    ')
    print('代码运行结果')
    print('====================================
    ')
    if dating_dec == 1:
        print("这哥们月薪过5万了")
    else:
        print("月薪不过五万")
    print('
    ====================================')
    print('
    
    
    ')
    
    代码运行结果
    ====================================
    
    月薪不过五万
    
    ====================================

    注:这个数据集只是用来演示决策树的用法,其结论参考意义不大

    总结:

      在使用随机森林算法中,明白了参数对其调节的影响.

      在决策树与随机森林算法中对高位数据集进行分析,我们可以在诸多特征中选择保留最重要的几个,方便我们对数据集手动降维处理.

    文章引自 : 《深入浅出python机器学习》

  • 相关阅读:
    架构的本质
    gulp 在 angular 项目中的使用
    Ionic 安装部署
    REST API 基于ACCESS TOKEN 的权限解决方案
    ionic 运行过程中动态切换API服务器地址
    ionic 实现双击返回键退出应用功能
    TPS和QPS是什么,他们的区别是什么
    redis和mySql的数据同步的解析
    mySql的UDF是什么
    export导出.xls时,在火狐的情况下出现表名乱码的情况的解决方案
  • 原文地址:https://www.cnblogs.com/weijiazheng/p/10893832.html
Copyright © 2011-2022 走看看