【问题标题】:Trying to find how similar one column is to another in dataframe试图找出数据框中的一列与另一列的相似程度
【发布时间】:2019-11-07 18:04:08
【问题描述】:

我正在尝试计算准确率。

我有一个包含大量数据列的 pandas 数据框。

对于每个客户,我有一列预测流失率和一列真实流失率。

有没有办法在两列之间计算准确度指标和其他指标?两列都只有二进制,0 表示没有流失,1 表示流失。

【问题讨论】:

  • docs.scipy.org/doc/scipy/reference/spatial.distance.html。有关两个布尔向量之间最典型的距离测量列表,请参阅底部集合。
  • 不过,既然您提到您有一个预测列,您可能更感兴趣的是根据您的预测概率计算 ROC en.wikipedia.org/wiki/Receiver_operating_characteristic,然后根据 ROC 下的面积对您的预测进行评分
  • @ALollz OP 很清楚,两列都是二进制的(即没有概率),因此 ROC 不适用
  • @desertnaut 这取决于吐出 1/0 的预测背后的类型模型。如果确实不存在具有分类基础的任意阈值的概率,那么请务必忽略它。但是这个问题没有什么可继续的......
  • @ALollz 的问题是关于 pandas 数据框中的两个二进制列;鉴于此,开始想象预测列的“背后”可能是纯粹的猜测,并且可以说是无关紧要的

标签: python pandas dataframe machine-learning metrics


【解决方案1】:

显然,您可以通过多种方法来衡量针对已知答案的预测准确性。由于您使用机器学习和 python 对此进行了标记,因此我建议您首先使用混淆矩阵(又名错误矩阵)。 scikit-learn python 库有一个可以使用的模块:

from sklearn.metrics import confusion_matrix
y_true = ...
y_pred = ...
confusion_matrix( y_true, y_pred )

来源:https://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-14
    • 1970-01-01
    • 1970-01-01
    • 2023-02-13
    • 2022-01-23
    • 2017-12-08
    • 1970-01-01
    • 2021-03-26
    相关资源
    最近更新 更多