2015-11-07 73 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})