使用随机森林算法预测成年人收入
本文使用一个简单的例子来让大家了解机器学习如何使用,如何使用随机森林算法来进行数据预测。
1.准备数据
成年人数据集 点击下载
2.导入数据集
 
############################# 随机森林实例 ####################################### #导入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将文本数据转化为数值 data_dummies = pd.get_dummies(data_lite) #对比样本原始特征和虚拟变量特征 print('样本原始特征:\n',list(data_lite.columns),'\n') print('虚拟变量特征:\n',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('\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')
代码运行结果 ==================================== 月薪不过五万 ====================================
注:这个数据集只是用来演示决策树的用法,其结论参考意义不大
总结:
在使用随机森林算法中,明白了参数对其调节的影响.
在决策树与随机森林算法中对高位数据集进行分析,我们可以在诸多特征中选择保留最重要的几个,方便我们对数据集手动降维处理.


 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号