【发布时间】:2020-12-03 04:33:18
【问题描述】:
我目前正在研究一个模型,以预测一个人感染冠状病毒后的死亡概率。 我正在使用带有分类变量的荷兰数据集:感染日期、死亡或治愈、性别、年龄组等。 建议使用我已经构建的决策树。 由于我是决策树的新手,我需要一些帮助。 我想让预测(目标变量)以概率(%)表示,而不是二进制输出。 我怎样才能做到这一点? 我也想通过自己输入数据来玩弄样本,看看结果是什么。 例如:让我们以 40 岁、男性等为例,计算其生存机会。 我怎样才能做到这一点? 我附上了以下代码:
from pandas import read_csv
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
import pandas as pd
import random as rnd
filename = '/Users/sef/Downloads/pima-indians-diabetes.csv'
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
dataframe = read_csv(filename, names=names)
array = dataframe.values
X = array[:,0:8]
Y = array[:,8]
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.3, random_state=1234)
model = DecisionTreeClassifier()
model.fit(X_train, Y_train)
DecisionTreeClassifier(class_weight=None, criterion='gini', max_depth=None,
max_features=None, max_leaf_nodes=None,
min_impurity_decrease=0.0, min_impurity_split=None,
min_samples_leaf=1, min_samples_split=2,
min_weight_fraction_leaf=0.0, presort=False, random_state=None,
splitter='best')
rnd.seed(123458)
X_new = X[rnd.randrange(X.shape[0])]
X_new = X_new.reshape(1,8)
YHat = model.predict_proba(X_new)
df = pd.DataFrame(X_new, columns = names[:-1])
df["predicted"] = YHat
print(df)
【问题讨论】:
标签: python scikit-learn decision-tree