Skip to content

Instantly share code, notes, and snippets.

@madfriend
Created August 7, 2016 19:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save madfriend/b2504c8db5b7bdc7ab3c443263f42fc6 to your computer and use it in GitHub Desktop.
Save madfriend/b2504c8db5b7bdc7ab3c443263f42fc6 to your computer and use it in GitHub Desktop.
#! coding: utf-8
# sklearn = библиотека scikit-learn (http://scikit-learn.org)
# Установить можно, например, так:
# сначала поставить дистрибутив Anaconda (https://www.continuum.io/downloads#_windows)
# а потом в терминале "conda install sklearn".
# Нам из sklearn нужно не так много
from sklearn.linear_model import LogisticRegression
# в sklearn есть удобная функция для создания
# отчетов по качеству классификации (Precision, Recall, F1)
from sklearn.metrics import classification_report
# библиотека pandas должна поставиться вместе с sklearn.
# нам она нужна только чтобы удобнее было csv-файлы читать
import pandas as pd
# этот кусок кода уже не нужен:
# он нужен был для того, чтобы названия колонок в csv-файле (взятых из первой строчки)
# привести в человеческое состояние (а именно пробелы сначала и с конца срезать)
# def rename(df):
# return df.rename(columns=dict((c, c.strip()) for c in df.columns))
#train = rename(pd.read_csv("inputLOG.csv", header=0))
#test = rename(pd.read_csv("test.csv", header=0))
# ну тут понятно, нужно правильные пути к файлам прописать.
# header=0 значит, что названия колонок берутся из первой строчки
train = pd.read_csv("inputLOG.csv", header=0)
test = pd.read_csv("test.csv", header=0)
logreg = LogisticRegression()
# нам нужно как в тестовой выборке, так и в обучающей
# сделать "разрез" - отдельно положить признаки (train, test)
# и отдельно - классы (train_Y, test_Y)
# следующие две строчки это и делают: выкидываем из данных
# колонку Result и кладем ее в другую переменную
train_Y = train.pop("Result")
test_Y = test.pop("Result")
# собственно, обучение: признаки, правильные классы
logreg.fit(train, train_Y)
# не спрашивай, почему они не могли назвать этот атрибут coefficients..
print logreg.coef_
# собственно, классификация. predict_Y - колонка с предсказанными классами
predict_Y = logreg.predict(test)
# печатаем клевый отчет, давая ему предсказанные классы и правильные классы
print classification_report(predict_Y, test_Y)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment