擅长:python、mysql、java
<p>@杰伊·皮伊</p>
<p>为了回答您的第一个问题,您肯定可以从两个数据帧创建一个数据帧</p>
<pre><code>data=pd.DataFrame(zip(tpr['True Positive Rate'],fpr['False Positive Rate']),columns=['TPR','FPR'])
</code></pre>
<p>为了计算ROC,可以在这个数据帧上使用以下逻辑</p>
^{pr2}$
<p>随机值示例</p>
<pre><code>tpr=pd.DataFrame(np.random.rand(100,2),columns=['Col1','True Positive Rate'])
fpr=pd.DataFrame(np.random.rand(100,2),columns=['Col2','False Positive Rate'])
data=pd.DataFrame(zip(tpr['True Positive Rate'],fpr['False Positive Rate']),columns=['TPR','FPR'])
data['dFPR']=list(np.diff(data['FPR'].values)) + [0]
data['dTPR']=list(np.diff(data['TPR'].values)) + [0]
data['sum1']=data.apply(lambda x : x['TPR'] * x['dFPR'],axis=1)
data['sum2']=data.apply(lambda x : x['dTPR'] * x['dFPR'],axis=1)
ROC=sum(data['sum1']) + sum(data['sum2'])/2
print(ROC)
</code></pre>
<p>0.773539521758</p>