利用mysql建立随机森林_随机森林算法实例 - osc_4imme0wh的个人空间 - OSCHINA - 中文开源技术交流社区...

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

1.准备数据集

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

链接:https://pan.baidu.com/s/10gC8U0tyh1ERxLhtY8i0bQ

提取码:4zzy

e331ada13a92967e4f78241d7688df44.png

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

3bbd099c7949933da80c89670e1f8366.png

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

0f1392b7000849813b436cb4b06964c7.png

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())

eb4c13f86747f9f44f811b5c51f88e41.png

3.用get_dummies处理数据

#使用get_dummies将文本数据转化为数值

data_dummies = pd.get_dummies(data_lite)

#对比样本原始特征和虚拟变量特征

print('样本原始特征:\n',list(data_lite.columns),'\n')

print('虚拟变量特征:\n',list(data_dummies.columns))

81cea8e37968174b635c49885b96110a.png

#显示数据集中的前5行

data_dummies.head()

e129fcf04d3905b56480a295acf69328.png

#定义数据集的特征值

features = data_dummies.loc[:,'年龄':'职业_ Transport-moving']

#将特征数值赋值为X

X = features.values

#将收入大于50K作为预测目标

y = data_dummies['收入_ >50K'].values

print('\n\n\n')

print('代码运行结果')

print('====================================\n')

#打印数据形态

print('特征形态:{} 标签形态:{}'.format(X.shape,y.shape))

print('\n====================================')

print('\n\n\n')

代码运行结果

====================================

特征形态:(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('\n\n\n')

print('代码运行结果')

print('====================================\n')

#打印数据形态

print('模型得分:{:.2f}'.format(go_dating_tree.score(X_test,y_test)))

print('\n====================================')

print('\n\n\n')

代码运行结果

====================================

模型得分: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('\n\n\n')

print('代码运行结果')

print('====================================\n')

if dating_dec == 1:

print("这哥们月薪过5万了")

else:

print("月薪不过五万")

print('\n====================================')

print('\n\n\n')

代码运行结果

====================================

月薪不过五万

====================================

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

总结:

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值