使用Altair绘制交互式ROC曲线时遭遇编码错误求助
解决Altair绘制ROC曲线时的
fpr字段找不到问题 我一眼就发现问题所在了——Altair对字段名是大小写敏感的!你的DataFrame里的列名是大写的FPR和TPR,但代码里你用了小写的fpr和tpr,这就导致Altair找不到对应的列,才抛出了那个ValueError。
修正后的代码
只需要把代码里的字段名改成和DataFrame一致的大写形式,就能正常运行了:
import altair as alt base = alt.Chart(df_roc, title='ROC Curve of KNN').properties(width=300) roc_curve = base.mark_line(point=True).encode( alt.X('FPR', title='False Positive Rate (FPR)', sort=None), alt.Y('TPR', title='True Positive Rate (TPR) (a.k.a Recall)'), ) roc_rule = base.mark_line(color='green').encode( x='FPR', y='FPR', size=alt.value(2) ) (roc_curve + roc_rule).interactive()
额外小技巧
- 以后遇到类似字段找不到的问题,可以先打印DataFrame的列名确认拼写和大小写:
这会输出类似print(df_roc.columns)Index(['Threshold', 'TPR', 'FPR'], dtype='object')的结果,帮你快速核对字段名是否匹配。 - 如果你习惯用小写字段名,也可以先把DataFrame的列统一转成小写,这样原来的代码就能直接用了:
df_roc.columns = df_roc.columns.str.lower()
内容的提问来源于stack exchange,提问作者Jaimee-lee Lincoln
相关产品推荐
相关产品推荐

