Python 如何在clf.predict\u proba(X\u测试)中获得更多小数点?

Python 如何在clf.predict\u proba(X\u测试)中获得更多小数点?,python,numpy,machine-learning,scikit-learn,Python,Numpy,Machine Learning,Scikit Learn,我有一个熊猫数据帧,用于二进制分类案例(类别a和类别B)。为了得到X\u列,X\u测试,y\u列,y\u测试 from sklearn.model_selection import train_test_split target = pd.DataFrame(data['good']) features = data.drop('good', axis=1) X_train, X_test, y_train, y_test = train_test_split(features,

我有一个熊猫数据帧,用于二进制分类案例(类别a和类别B)。为了得到
X\u列,X\u测试,y\u列,y\u测试

from sklearn.model_selection import train_test_split
target = pd.DataFrame(data['good'])
features = data.drop('good', axis=1)
X_train, X_test, y_train, y_test = train_test_split(features, 
                                                    target, 
                                                    test_size = 0.3, 
                                                    random_state = 0)
然后我做了随机森林分类器,用这段代码

from sklearn.ensemble import RandomForestClassifier
clf = RandomForestClassifier(n_jobs=2, random_state=0)
model = clf.fit(X_train, y_train)
通常,您可以通过执行
clf.predict(X\u测试)
来获得预测。它给出了
numpy.ndarray
这样的对象

array(['0', '0', '1', '0', '0', '1', '0', '1', '1', '1'], dtype=object)
然后,我想通过
clf.predict\u proba(X\u test)
计算预测概率,结果是

array([[ 0.7  ,  0.3  ],
       [ 0.8  ,  0.2  ],
       [ 0.4  ,  0.6  ],
       [ 0.8  ,  0.2  ],
       [ 0.5  ,  0.5  ],
       [ 0.1  ,  0.9  ],
       [ 0.5  ,  0.5  ],
       [ 0.3  ,  0.7  ],
       [ 0.3  ,  0.7  ],
       [ 0.5  ,  0.5  ]])
我想在
clf.predict\u proba(X\u test)
输出中获得更多的小数。(我应该是3位小数)例如

array([[ 0.712  ,  0.288  ],
       [ 0.845  ,  0.155  ... etc

如果答案也能将
clf.predict(X_检验)
clf.predict\u proba(X_检验)
转换并合并到熊猫数据框中,那就更好了,因为我会继续计算基尼指数。提前感谢

增加模型参数中的“n_估计器”(似乎您已将其设置为默认值10)。

np.set_printoptions(precision=3)
?@Divakar工作,您能将结果添加到pandas dataframe吗?只需使用列名将结果附加到dataframe即可。类似于
data['prob_0']=output[:,0]
data['prob_1']=output[:,1]
,其中
output=clf.predict\u proba(X_test)