我對隨機森林的工作原理知之甚少。 通常在分類中,我可以將火車數據放入隨機森林分類器,並要求預測測試數據。如何解釋sci-kit隨機森林分類器的學習?
目前我正在提供給我的泰坦尼克號數據。這是數據集的頂行,並且有大約1300(大約)行。
survived pclass sex age sibsp parch fare embarked 0 1 1 female 29 0 0 211.3375 S 1 1 1 male 0.9167 1 2 151.55 S 2 0 1 female 2 1 2 151.55 S 3 0 1 male 30 1 2 151.55 S 4 0 1 female 25 1 2 151.55 S 5 1 1 male 48 0 0 26.55 S 6 1 1 female 63 1 0 77.9583 S 7 0 1 male 39 0 0 0 S 8 1 1 female 53 2 0 51.4792 S 9 0 1 male 71 0 0 49.5042 C 10 0 1 male 47 1 0 227.525 C 11 1 1 female 18 1 0 227.525 C 12 1 1 female 24 0 0 69.3 C 13 1 1 female 26 0 0 78.85 S
沒有給出任何的測試數據。所以我想要隨機森林來預測整個數據集的生存並將其與實際值進行比較(更像是檢查準確性分數)。
所以我所做的是將我的完整數據集分成兩部分;一個具有特徵並且另一個預測(存活)。 特徵包括除了存活以外的所有列和預測包含存活列。
dfFeatures = df['survived']
dfTarget = dfCopy.drop('survived', 1)
注意:df是整個數據集。
這裏是檢查的隨機森林
rfClf = RandomForestClassifier(n_estimators=100, max_features=10)
rfClf = rfClf.fit(dfFeatures, dfTarget)
scoreForRf = rfClf.score(dfFeatures, dfTarget)
我得到的分數輸出,這樣的事情
The accuracy score for random forest is : 0.983193277311
我發現它有點難以明白髮生了什麼背後的得分碼代碼在上面給出的代碼中。
做,它預測存活基於其它特徵(dfFeatures
)的所有元組,並將其與試驗數據(dfTarget
)比較,並給該預測分數或它隨機地創建基於提供的列車數據串和測試數據和比較其產生的測試數據的準確性?
更確切地說,在計算準確性分數時,它是否預測整個數據集或僅僅隨機部分數據集的存活率?
如果您手動將數據集劃分爲訓練和測試,是的,它預測訓練集中的存活列,並嘗試將其與測試集相匹配,並且這是您的準確性分數。 – Arman
@Arman如果我不分成訓練集和測試集,該怎麼辦。它是否不隨機地在場景後面生成測試集(67-23)? – Cybercop
我這麼認爲,關於一個描述測試集和多少訓練集的參數,我怎麼也不確定,可能在這種情況下準確性是訓練準確性分數而不是測試準確性分數 – Arman