Created
August 7, 2016 19:20
-
-
Save madfriend/b2504c8db5b7bdc7ab3c443263f42fc6 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#! 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