如何将.8的阈值设置为随机森林分类器在Python中

时间:2018-01-22 05:37:09

标签: python pandas scikit-learn random-forest

我正在做二进制分类问题。我想把一个阈值.8归类为一个特定的类。如果概率低于.8则归入另一类。怎么办呢。

clf = RandomForestClassifier(n_estimators=10, max_depth=8 ,random_state=0)
classifier = clf.fit(X_train,y_train)
predictions = classifier.predict_proba(X_train) 
predict=pd.DataFrame(predictions)

与Probabilty结合后的数据框

Id  Gender  Age Salary  country Mix_ratio   Allowance   0   1
3452    M   25  245689  AU     0.46             7880    0.8 0.2
890     F   43  568909  FR     0.23             89076   0.7 0.3
4670    M   29  897643  AU     0.76             7865    0.1 0.9
7423    F   32  235892  IND    0.45             78534   0.2 0.8
94567   F   56  145823  SG     0.67             54123   0.5 0.5
23876   M   56  345122  FR     0.23              8900   0.8 0.2

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

使用您的DataFrame,您可以执行以下操作:

df['outcome'] = np.where(df['1']>=0.8, 'Class A', 'Class B')

df
Out[88]: 
      Id Gender  Age  Salary country  Mix_ratio  Allowance    0    1  outcome
0   3452      M   25  245689      AU       0.46       7880  0.8  0.2  Class B
1    890      F   43  568909      FR       0.23      89076  0.7  0.3  Class B
2   4670      M   29  897643      AU       0.76       7865  0.1  0.9  Class A
3   7423      F   32  235892     IND       0.45      78534  0.2  0.8  Class A
4  94567      F   56  145823      SG       0.67      54123  0.5  0.5  Class B
5  23876      M   56  345122      FR       0.23       8900  0.8  0.2  Class B