機械学習でのCSVファイルの読み込み

Kaggleのチュートリアルを参考にした。

コードはPython3.5。

ロジスティック回帰

import csv
import numpy as np
from sklearn.linear_model import LogisticRegression
from sklearn import metrics

def read_dataset(filename):
    csv_file_object = csv.reader(open(filename 'r'))
    # header = next(csv_file_object)
    x = []
    y = []
    for row in csv_file_object:
        x.append(row[:2])
        y.append(row[2])
    return (np.array(x), np.array(y))

# トレーニングデータ読み込み
X, Y = read_dataset("train.csv")
X = X.astype(np.float64)

# テストデータ読み込み
X_, Y_ = read_dataset("test.csv")
X_ = X_.astype(np.float64)

# ロジスティック回帰モデル 定義
lr = LogisticRegression()

# 学習
lr.fit(X, Y)

# 予測
score = metrics.accuracy_score(lr.predict(X_), Y)

# 正解率
print(str(score*100)+"%")

サポートベクターマシン

import csv
import numpy as np
from sklearn import svm
from sklearn import metrics

def read_dataset(filename):
    csv_file_object = csv.reader(open(filename, 'r'))
    # header = next(csv_file_object)
    x = []
    y = []
    for row in csv_file_object:
        x.append(row[:2])
        y.append(row[2])
    return (np.array(x), np.array(y))

# トレーニングデータ読み込み
X, Y = read_dataset("train.csv")

# テストデータ読み込み
X_, Y_ = read_dataset("test.csv")


# 学習
for kernel in ('linear', 'poly', 'rbf'):

    # SVMでの学習
    clf = svm.SVC(kernel=kernel, gamma=2)
    clf.fit(X, Y)

    # 正答率
    score = metrics.accuracy_score(clf.predict(X), Y)
    print(kernel,str(score*100)+"%")