利用mysql建立随机森林_随机森林算法实例 - osc_4imme0wh的个人空间 - OSCHINA - 中文开源技术交流社区...
根據(jù)成年人數(shù)據(jù)集來(lái)預(yù)測(cè)一個(gè)人的收入
1.準(zhǔn)備數(shù)據(jù)集
我下載好了一個(gè)成年人數(shù)據(jù)集,從百度云下載
鏈接:https://pan.baidu.com/s/10gC8U0tyh1ERxLhtY8i0bQ
提取碼:4zzy
準(zhǔn)備好了數(shù)據(jù)集,那就把這個(gè)數(shù)據(jù)集與你的jupyter notebook放在同一目錄.如果你是直接打開命令提示符啟動(dòng)jupyter notebook那么路徑為:
或者你也可以在D盤創(chuàng)建一個(gè)目錄并在這個(gè)目錄啟動(dòng)jupyter notebook,把數(shù)據(jù)集放入其中
2.在jupyter notebook中導(dǎo)入這個(gè)數(shù)據(jù)集
############################# 隨機(jī)森林實(shí)例 #######################################
#導(dǎo)入pandas庫(kù)
import pandas as pd
#導(dǎo)入數(shù)據(jù)集拆分工具
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=['年齡','單位性質(zhì)','權(quán)重','學(xué)歷','受教育時(shí)長(zhǎng)','婚姻狀況','職業(yè)','家庭情況','種族','性別','資產(chǎn)所得','資產(chǎn)損失','周工作時(shí)長(zhǎng)','原籍','收入'])
#為了方便展示,我們選取其中一部分?jǐn)?shù)據(jù)
data_lite = data[['年齡','單位性質(zhì)','學(xué)歷','性別','周工作時(shí)長(zhǎng)','職業(yè)','收入']]
#下面看一下數(shù)據(jù)的前五行是不是我們想要的結(jié)果
display(data_lite.head())
3.用get_dummies處理數(shù)據(jù)
#使用get_dummies將文本數(shù)據(jù)轉(zhuǎn)化為數(shù)值
data_dummies = pd.get_dummies(data_lite)
#對(duì)比樣本原始特征和虛擬變量特征
print('樣本原始特征:\n',list(data_lite.columns),'\n')
print('虛擬變量特征:\n',list(data_dummies.columns))
#顯示數(shù)據(jù)集中的前5行
data_dummies.head()
#定義數(shù)據(jù)集的特征值
features = data_dummies.loc[:,'年齡':'職業(yè)_ Transport-moving']
#將特征數(shù)值賦值為X
X = features.values
#將收入大于50K作為預(yù)測(cè)目標(biāo)
y = data_dummies['收入_ >50K'].values
print('\n\n\n')
print('代碼運(yùn)行結(jié)果')
print('====================================\n')
#打印數(shù)據(jù)形態(tài)
print('特征形態(tài):{} 標(biāo)簽形態(tài):{}'.format(X.shape,y.shape))
print('\n====================================')
print('\n\n\n')
代碼運(yùn)行結(jié)果
====================================
特征形態(tài):(32561, 44) 標(biāo)簽形態(tài):(32561,)
====================================
4.用決策樹建模并作出預(yù)測(cè)
#將數(shù)據(jù)集拆分為訓(xùn)練集和測(cè)試集
X_train,X_test,y_train,y_test = train_test_split(X,y,random_state=0)
#用最大深度為5的隨機(jī)森林?jǐn)M合數(shù)據(jù)
go_dating_tree = tree.DecisionTreeClassifier(max_depth=5)
go_dating_tree.fit(X_train,y_train)
print('\n\n\n')
print('代碼運(yùn)行結(jié)果')
print('====================================\n')
#打印數(shù)據(jù)形態(tài)
print('模型得分:{:.2f}'.format(go_dating_tree.score(X_test,y_test)))
print('\n====================================')
print('\n\n\n')
代碼運(yùn)行結(jié)果
====================================
模型得分:0.80
====================================
#將Mr Z的數(shù)據(jù)輸入給模型
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]]
#使用模型做出預(yù)測(cè)
dating_dec = go_dating_tree.predict(Mr_Z)
print('\n\n\n')
print('代碼運(yùn)行結(jié)果')
print('====================================\n')
if dating_dec == 1:
print("這哥們?cè)滦竭^(guò)5萬(wàn)了")
else:
print("月薪不過(guò)五萬(wàn)")
print('\n====================================')
print('\n\n\n')
代碼運(yùn)行結(jié)果
====================================
月薪不過(guò)五萬(wàn)
====================================
注:這個(gè)數(shù)據(jù)集只是用來(lái)演示決策樹的用法,其結(jié)論參考意義不大
總結(jié):
在使用隨機(jī)森林算法中,明白了參數(shù)對(duì)其調(diào)節(jié)的影響.
在決策樹與隨機(jī)森林算法中對(duì)高位數(shù)據(jù)集進(jìn)行分析,我們可以在諸多特征中選擇保留最重要的幾個(gè),方便我們對(duì)數(shù)據(jù)集手動(dòng)降維處理.
文章引自 : 《深入淺出python機(jī)器學(xué)習(xí)》
總結(jié)
以上是生活随笔為你收集整理的利用mysql建立随机森林_随机森林算法实例 - osc_4imme0wh的个人空间 - OSCHINA - 中文开源技术交流社区...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 八开头的成语有哪些啊?
- 下一篇: layui一个表格中怎么接两个接口的值_