2015-11-07 103 views
0

我想使用sklearn的RandomForestClassifier的權重。事實上,我有一個不平衡的數據組。 1級與600,2級90,3級60和4級96樣本數據!將重量用於隨機森林的sklearn

我想使用權重來使數據集平衡。這是我的代碼,產生了一個錯誤。

cfr = RandomForestClassifier(n_estimators=100,n_jobs =5,{1:1,2:3,3:3,4:3}) 
cfr.fit(XTrain,yTrain) 
predictedTest=cfr.predict(XTest) 

這是錯誤。

SyntaxError: non-keyword arg after keyword arg 

而且我也有問題,選擇一個數作爲權重。你能指導我嗎?

回答

0

cfr = RandomForestClassifier(n_estimators=100,n_jobs =5,{1:1,2:3,3:3,4:3}) 

前兩個參數是關鍵字參數,你在哪裏使用語法「ARG =值」指定參數無序。當您在參數列表中從左向右移動時,一旦開始給出關鍵字參數,就無法停止。之後的每個參數都必須是關鍵字參數。編輯:因爲RandomForestClassifier的所有參數都有關鍵字,所以你只需要添加最後一個關鍵字。

cfr = RandomForestClassifier(n_estimators=100,n_jobs=5,class_weight={1:1,2:3,3:3,4:3})