Scikit изучает выходные metrics.classification_report в формате CSV/с разделителями табуляцииPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Scikit изучает выходные metrics.classification_report в формате CSV/с разделителями табуляции

Сообщение Anonymous »

Я выполняю многоклассовую классификацию текста в Scikit-Learn. Набор данных обучается с использованием многочленного наивного байесовского классификатора, имеющего сотни меток. Вот выдержка из сценария Scikit Learn для подгонки модели MNB

Код: Выделить всё

from __future__ import print_function

# Read **`file.csv`** into a pandas DataFrame

import pandas as pd
path = 'data/file.csv'
merged = pd.read_csv(path, error_bad_lines=False, low_memory=False)

# define X and y using the original DataFrame
X = merged.text
y = merged.grid

# split X and y into training and testing sets;
from sklearn.cross_validation import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=1)

# import and instantiate CountVectorizer
from sklearn.feature_extraction.text import CountVectorizer
vect = CountVectorizer()

# create document-term matrices using CountVectorizer
X_train_dtm = vect.fit_transform(X_train)
X_test_dtm = vect.transform(X_test)

# import and instantiate MultinomialNB
from sklearn.naive_bayes import MultinomialNB
nb = MultinomialNB()

# fit a Multinomial Naive Bayes model
nb.fit(X_train_dtm, y_train)

# make class predictions
y_pred_class = nb.predict(X_test_dtm)

# generate classification report
from sklearn import metrics
print(metrics.classification_report(y_test, y_pred_class))
А упрощенный вывод metrics.classification_report на экране командной строки выглядит следующим образом:

Код: Выделить всё

             precision  recall   f1-score   support
12       0.84      0.48      0.61      2843
13       0.00      0.00      0.00        69
15       1.00      0.19      0.32       232
16       0.75      0.02      0.05       965
33       1.00      0.04      0.07       155
4       0.59      0.34      0.43      5600
41       0.63      0.49      0.55      6218
42       0.00      0.00      0.00       102
49       0.00      0.00      0.00        11
5       0.90      0.06      0.12      2010
50       0.00      0.00      0.00         5
51       0.96      0.07      0.13      1267
58       1.00      0.01      0.02       180
59       0.37      0.80      0.51      8127
7       0.91      0.05      0.10       579
8       0.50      0.56      0.53      7555
avg/total 0.59      0.48      0.45     35919
Мне интересно, есть ли какой-нибудь способ получить выходные данные отчета в стандартный файл CSV с обычными заголовками столбцов.
Когда я отправляю командную строку вывод в файл csv или попробуйте скопировать/вставить вывод экрана в электронную таблицу - Openoffice Calc или Excel. Результаты объединяются в один столбец. Выглядит так:
Изображение


Подробнее здесь: https://stackoverflow.com/questions/396 ... ted-format
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»