Python 如何在clf.predict\u proba(X\u测试)中获得更多小数点?
我有一个熊猫数据帧,用于二进制分类案例(类别a和类别B)。为了得到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,
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)