【问题标题】:Prediction percentage come wrong(Logical error)预测百分比出错(逻辑错误)
【发布时间】:2019-03-05 16:43:48
【问题描述】:

在下面的代码中,我试图预测患糖尿病的概率。在我想计算数据框中真假百分比的部分,这个职责的代码似乎是正确的,但它给出了错误的输出。

输入:

真实数:268

错误数:500

预期输出:

真:34.90%--------假:65.10%

34.90 + 65.10 =100.00

我得到了什么:

真:34.90%--------假:50.00%

34.90 + 50.00 != 100

这很奇怪!因为我们只有 True 和 False(50%,50%)

这是我的代码:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
​
%matplotlib inline

df = pd.read_csv('pima-data-Copy1.csv')


df.isnull().values.any()

dibetes_map = {True:1, False:0}
df['diabetes'] = df['diabetes'].map(dibetes_map)

num_true = len(df.loc[df['diabetes'] == True])
num_false = len(df.loc[df['diabetes'] == False])
​
print("number of true: {0} ({1:2.2f}%)".format(num_true, (num_true/(num_true + num_false))*100))
print("number of false: {0} ({1:2.2f}%)".format(num_false, (num_false/(num_false + num_false))*100))

【问题讨论】:

    标签: python-3.x pandas dataframe artificial-intelligence prediction


    【解决方案1】:

    第二行的分母中有num_false + num_false。以下是一些建议的简化:

    df = pd.read_csv('pima-data-Copy1.csv')
    
    # df.isnull().values.any()  this isn't used anywhere
    
    # dibetes_map = {True:1, False:0}   
    # df['diabetes'] = df['diabetes'].map(dibetes_map)   # this is redundant as you are comparing with True/False
    
    num_true = df['diabetes'].sum()
    total = df['diabetes'].count()
    num_false = total - num_true 
    
    print("number of true: {0} ({1:2.2f}%)".format(num_true, (num_true / total)*100))
    print("number of false: {0} ({1:2.2f}%)".format(num_false, (num_false / total)*100)))
    

    【讨论】:

      猜你喜欢
      • 2019-03-05
      • 1970-01-01
      • 1970-01-01
      • 2019-04-29
      • 2016-06-15
      • 2016-09-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多