Как прочитать CSV-файл и построить матрицу путаницы в Python - PullRequest
0 голосов
/ 13 июня 2018

У меня есть CSV-файл с двумя столбцами как

actual,predicted
1,0
1,0
1,1
0,1
.,.
.,.

Как мне прочитать этот файл и построить матрицу путаницы в Python?Я попробовал следующий код из программы.

import pandas as pd
from sklearn.metrics import confusion_matrix
import numpy

CSVFILE='./mappings.csv'
test_df=pd.read_csv[CSVFILE]

actualValue=test_df['actual']
predictedValue=test_df['predicted']

actualValue=actualValue.values
predictedValue=predictedValue.values

cmt=confusion_matrix(actualValue,predictedValue)
print cmt

, но он дает мне эту ошибку.

Traceback (most recent call last):
  File "confusionMatrixCSV.py", line 7, in <module>
    test_df=pd.read_csv[CSVFILE]
TypeError: 'function' object has no attribute '__getitem__'

Ответы [ 3 ]

0 голосов
/ 13 июня 2018
import pandas as pd
from sklearn.metrics import confusion_matrix
import numpy as np

CSVFILE = './mappings.csv'
test_df = pd.read_csv(CSVFILE)

actualValue = test_df['actual']
predictedValue = test_df['predicted']

actualValue = actualValue.values.argmax(axis=1)
predictedValue  =predictedValue.values.argmax(axis=1)

cmt = confusion_matrix(actualValue, predictedValue)
print cmt
0 голосов
/ 28 июня 2018

Вот простое решение для расчета точности и построения матрицы путаницы для ввода в формате, упомянутом в вопросе.

from sklearn.metrics import confusion_matrix
from sklearn.metrics import accuracy_score

file=open("results.txt","r")

result=[]
actual=[]

i = 0

for line in file:
    i+=1
    sent=line.split("\t")
    sent[0]=int(sent[0])
    sent[1]=int(sent[1])
    result.append(sent[1])
    actual.append(sent[0])

cnf_mat=confusion_matrix(actual,result)
print cnf_mat

print('Test Accuracy:', accuracy_score(actual,result))
0 голосов
/ 13 июня 2018

pd.read_csv - это функция.Вы вызываете функцию в Python, используя круглые скобки.

Вы должны использовать pd.read_csv(CSVFILE) вместо pd.read_csv[CSVFILE].

...