随机森林算法实例—预测收入

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

目录

0.准备数据集

1.打开文件

2.分析样本特征

3.定义特征&&获取特征的数值     ​

4.训练模型

5.使用模型预测

总结:


0.准备数据集

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

1.打开文件

#导入pandas库
import pandas as pd
#导入数据集拆分工具
from sklearn.model_selection import train_test_split
from sklearn import tree,datasets

'''1.打开文件'''
#用pandas打开csv文件
data = pd.read_csv(r'H:\Algorithm\data\adult.csv',header=None,index_col=False,names=['年龄','单位性质','权重','学历','受教育时长','婚姻状况','职业','家庭情况','种族','性别','资产所得','资产损失','周工作时长','原籍','收入'])
#为了方便展示,我们选取其中一部分数据
data_lite = data[['年龄','单位性质','学历','性别','周工作时长','职业','收入']]
#下面看一下数据的前五行是不是我们想要的结果
print(data_lite.head())

2.分析样本特征

'''2.分析样本特征(用get_dummies处理数据)'''
#使用get_dummies将文本数据转化为数值
data_dummies = pd.get_dummies(data_lite)
#对比样本原始特征和虚拟变量特征
#虚拟变量特征是
print('样本原始特征:\n',list(data_lite.columns),'\n')
print('虚拟变量特征:\n',list(data_dummies.columns))
#显示数据集中的前5行
print(data_dummies.head())

3.定义特征&&获取特征的数值

'''3.定义特征值'''
#定义数据集的特征
features = data_dummies.loc[:,'年龄':'职业_ Transport-moving']
#将特征的数值赋值为X
X = features.values
print(features)
print(X)
#将收入大于50K作为预测目标
y = data_dummies['收入_ >50K'].values
print(data_dummies['收入_ >50K'])
print(y)

print('\n\n\n')
print('代码运行结果')
print('====================================\n')
#打印数据形态
print('特征形态:{} 标签形态:{}'.format(X.shape,y.shape))
print('\n====================================')
print('\n\n\n')

      

4.训练模型

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

5.使用模型预测

'''5.使用模型预测'''
#将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')

总结:

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

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

  • 15
    点赞
  • 109
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值