决策树:python中的预测概率成反比
Posted
技术标签:
【中文标题】决策树:python中的预测概率成反比【英文标题】:Decision Tree: Probability of prediction inversely proportional in python 【发布时间】:2019-05-24 23:13:09 【问题描述】:我想创建与决策树中的每个类成反比的预测概率。类似于 4.1 第 9 页公式中描述的 here。 我该如何参考我的代码:
import numpy as np
import pandas as pd
from sklearn.cross_validation import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
from sklearn import tree
url="https://archive.ics.uci.edu/ml/machine-learning-databases/abalone/abalone.data"
c=pd.read_csv(url, header=None)
X = c.values[:,1:8]
Y = c.values[:,0]
X_train, X_test, y_train, y_test = train_test_split( X, Y, test_size = 0.3, random_state = 100)
clf_entropy = DecisionTreeClassifier(criterion = "entropy", random_state = 100,
max_depth=3, min_samples_leaf=5)
clf_entropy.fit(X_train, y_train)
probs = clf_entropy.predict_proba(X_test)
probs
目标是将零概率替换为 小的非零值并将概率归一化以使其成为分布。 然后选择标签,使得选择的概率成反比 与当前树的预测成正比。
【问题讨论】:
【参考方案1】:上面提到的等式可以用下面的sn-p来实现。
def inverse_prob(model_probs):
model_probs[model_probs == 0 ] = 1e-5
inverse = 1/model_probs
return inverse/inverse.sum(axis=0)
每当给定概率分布中的值为零时,添加一个小值 1e-5。
【讨论】:
谢谢@AI_Learning,如果我有模型集合(决策树的数量),它会起作用吗?此外,它是否也处理零概率? 它可以处理,如果您的集成模型可以为每个数据点提供概率分布。现在添加了胶带以处理零概率。以上是关于决策树:python中的预测概率成反比的主要内容,如果未能解决你的问题,请参考以下文章
(数据科学学习手札23)决策树分类原理详解&Python与R实现