【发布时间】:2019-11-19 17:36:30
【问题描述】:
我尝试将依赖于循环的值分配给 python 中的数据框。
我有以下起始数据框:
thres = 0.1
d = { 'T': [0.], 'TN': [0], 'FN': [0], 'FP':[0], 'TP':[0]}
dataframef = pd.DataFrame(data=d)
用我的开始变量thres。
现在我正在进入我的循环:
while thres <= 0.4:
a = { 'T': [0], 'TN': [0], 'FN': [0], 'FP':[0], 'TP':[0]}
dataframe = pd.DataFrame(data=a)
y_pred = predictionthreshold(RandomForestClassifier(random_state=42), thres)
tn, fp, fn, tp = confusion_matrix(y_test.ravel(), y_pred).ravel()
dataframe.loc[0]['T'] = thres
dataframe.loc[0]['TN'] = tn
dataframe.loc[0]['FP'] = fp
dataframe.loc[0]['FN'] = fn
dataframe.loc[0]['TP'] = tp
dataframef = dataframef.append(dataframe, ignore_index=True)
thres=thres+0.1
我的结果是:
T TN FN FP TP
0 0.0 0 0 0 0
1 0.0 0 0 0 0
2 0.0 0 0 0 0
3 0.0 0 0 0 0
4 0.0 0 0 0 0
我会期待一些东西,它会逐步填充数据框:
T TN FN FP TP
0 0.1 1 0 0 0
1 0.2 0 3 0 0
2 0.3 0 0 2 0
3 0.4 0 0 0 0
4 0.5 0 4 0 4
其中的错误在哪里?有没有优雅的方法来避免循环?
【问题讨论】:
-
什么是
predictionthreshold?它没有定义。 -
predictionthreshold 是我的inviduel函数,它返回4个变量,我将它们存储在TN,FN,FP,TP中
标签: python pandas machine-learning random-forest confusion-matrix