决策树: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中的预测概率成反比的主要内容,如果未能解决你的问题,请参考以下文章

机器学习 | 随机森林推测泰坦尼克号存活概率

如何在决策树中使用python调用每个类的概率值

(数据科学学习手札23)决策树分类原理详解&Python与R实现

具有概率目标的决策树

决策树-随机森林-预测5年内皮马印第安人糖尿病发作的概率-机器学习实验一

机器学习 决策树