【发布时间】:2015-09-17 10:03:06
【问题描述】:
我在 scikit learn 中使用随机森林进行分类和获取类概率,我使用了 pred_proba 函数。但它输出的概率四舍五入到小数点后一位
我尝试使用示例虹膜数据集
iris = load_iris()
df = pd.DataFrame(iris.data, columns=iris.feature_names)
df['is_train'] = np.random.uniform(0, 1, len(df)) <= .75
df['species'] = pd.Categorical(iris.target, iris.target_names)
df.head()
train, test = df[df['is_train']==True], df[df['is_train']==False]
features = df.columns[:4]
clf = RandomForestClassifier(n_jobs=2)
y, _ = pd.factorize(train['species'])
clf.fit(train[features], y)
clf.predict_proba(train[features])
输出概率
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 1. , 0. , 0. ],
[ 0. , 1. , 0. ],
[ 0. , 1. , 0. ],
[ 0. , 1. , 0. ],
[ 0. , 1. , 0. ],
[ 0. , 1. , 0. ],
[ 0. , 1. , 0. ],
[ 0. , 0.8, 0.2],
[ 0. , 1. , 0. ],
[ 0. , 1. , 0. ],
[ 0. , 1. , 0. ],
它是默认输出吗?可以增加小数位数吗?
注意: 找到了解决方案。 默认编号树的数量 = 10,在增加数量之后。树的数量增加到一百,概率的精度就提高了。
【问题讨论】:
标签: python machine-learning scikit-learn random-forest