Data Science Tutorial 02 @ Data Science Society

那須野薫(Kaoru Nasuno)/ 東京大学(The University of Tokyo)

データサイエンスの基礎的なスキルを身につける為のチュートリアルです。
KaggleのコンペティションであるRECRUIT Challenge, Coupon Purchase Predictionのデータセットを題材として、
データサイエンスの基礎的なスキルに触れ,理解の土台を養うことを目的とします。
(高い予測精度を出すことが目的ではないです)
まだ、書きかけでして、要望に合わせて誤りの修正や加筆をしていく予定です。何かお気づきの点があればご連絡頂けますと幸いです。

対象データ

RECRUIT Challenge, Coupon Purchase Predictionのデータセット。
ユーザ登録や利用規約に同意してダウンロードしてください。
https://www.kaggle.com/c/coupon-purchase-prediction/data

進め方

Lecture01をやっていない方はLecture01を先にやってください。
まずは、全てのコードをコピー&ペーストして、エラーなく動作することを確認しましょう。
この段階でエラーが出る場合には環境が整っていないか、パラメタの設定ができていない等、
プログラムの理解とはあまり関係のない箇所が原因である可能性が高いです。
動作確認が終わったら、ひとつずつ書き写してみて、それぞれどのように動作するかを理解していくという方法をお勧めします。

目次

  1. 下準備
  2. データベースへのデータの展開
  3. モデリング対象の明確化
  4. 機械学習による予測モデルの構築・精度検証
  5. データの概観把握・予測モデルの改善

In [1]:
# TODO: You Must Change the setting bellow
MYSQL = {
    'user': 'root',
    'passwd': '',
    'db': 'coupon_purchase',
    'host': '127.0.0.1',
    'port': 3306,
    'local_infile': True,
    'charset': 'utf8',
}
DATA_DIR = '/home/nasuno/recruit_kaggle_datasets'  #  ディレクトリの名前に日本語(マルチバイト文字)は使わないでください。
OUTPUTS_DIR = '/home/nasuno/recruit_kaggle/outputs'  # 予測結果などを保存するディレクトリ。

In [2]:
%matplotlib inline
import matplotlib.pyplot as plt
import MySQLdb
import numpy

from sklearn.utils import shuffle
from sklearn.cross_validation import train_test_split
from sklearn.metrics import f1_score, accuracy_score
from sklearn.linear_model import LogisticRegression
from datetime import datetime, timedelta
from itertools import product

# Random Seed
rng = numpy.random.RandomState(1234)

dbcon = MySQLdb.connect(**MYSQL)
dbcur = dbcon.cursor()


---------------------------------------------------------------------------
OperationalError                          Traceback (most recent call last)
<ipython-input-2-949db6a3ec43> in <module>()
     14 rng = numpy.random.RandomState(1234)
     15 
---> 16 dbcon = MySQLdb.connect(**MYSQL)
     17 dbcur = dbcon.cursor()

/usr/local/lib/python2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.8-x86_64.egg/MySQLdb/__init__.pyc in Connect(*args, **kwargs)
     79     """Factory function for connections.Connection."""
     80     from MySQLdb.connections import Connection
---> 81     return Connection(*args, **kwargs)
     82 
     83 connect = Connection = Connect

/usr/local/lib/python2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.8-x86_64.egg/MySQLdb/connections.pyc in __init__(self, *args, **kwargs)
    185         kwargs2['client_flag'] = client_flag
    186 
--> 187         super(Connection, self).__init__(*args, **kwargs2)
    188         self.cursorclass = cursorclass
    189         self.encoders = dict([ (k, v) for k, v in conv.items()

OperationalError: (2003, "Can't connect to MySQL server on '127.0.0.1' (61)")

In [ ]: