Процент прогнозирования неверен (логическая ошибка) - PullRequest
0 голосов
/ 05 марта 2019

В приведенном ниже коде я пытался предсказать вероятность диабета. В разделе, в котором я хочу вычислить процент истинного ложного во фрейме данных, и код для этой обязанности кажется правильным, но он дает неправильный вывод.

Введите:

число истинных: 268

число ложных: 500

Ожидаемый результат:

true: 34.90% ------- false: 65.10%

34,90 + 65,10 = 100,00

что я получаю:

true: 34,90% ------- false: 50,00%

34,90 + 50,00! = 100

что странно! потому что у нас есть только Истина и Ложь (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))

1 Ответ

1 голос
/ 05 марта 2019

У вас есть 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)))
...