【機械学習】PythonのScikit-learn!5分で始める機械学習

機械学習

こんにちは、しらすです。

Pythonにはscikit-learnという機械学習を行うためのライブラリが用意されており、モデルの選択や学習データの切り出し、結果の表示が超簡単に出力できるようになっています。

クロスバリデーションやグリッドサーチといった機械学習をサポートする手法も組み込まれており、非常に簡単に実装が可能です。

とりあえずこれで動かしてみよう、Pythonの機械学習

まずは機械学習を動かしてみましょう!以下のコードをpython環境で実行しましょう。

※Anaconda3がインストールされている前提です。機械学習に必要なライブラリはAnacondaでpythonをインストールする際に一緒にダウンロードされています

※データはkaggleなどから取得してみてください

import pandas as pd
from sklearn.model_selection import GridSearchCV
from sklearn.model_selection import KFold
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn.metrics import classification_report
from sklearn.ensemble import RandomForestClassifier
#read csv
df = pd.read_csv("data.csv")
#data cleansing
#if necessary please put some clensing logic here
#Separate conditions and answer
y = df.loc[:,"quality"]
x = df.drop("quality", axis=1)
#Separate train data and test data
train_x, test_x, train_y, test_y = train_test_split(x,y, test_size = 0.2)
#Set grid search condition (random forest)
grid_param = [{"n_estimators": [20,100],
               "max_depth"   : [None,3,7],
              }]
#Set cross validation condition
kfold_cv = KFold(n_splits=5, shuffle=True)
#Set algorizm
clf = GridSearchCV(RandomForestClassifier(), grid_param, cv=kfold_cv)
#Machine learning
clf.fit(train_x, train_y)
print("Best parameter = ", clf.best_estimator_)
#Prediction
pred_y = clf.predict(test_x)
#output
print(classification_report(pred_y, test_y))
print("Accuracy : ", accuracy_score(pred_y, test_y))

Pythonは機械学習だけでなくExcelやwebとも親和性が非常に高い言語です。VBAも有用ですが、これから機械学習やExcelデータ処理、webスクレイピングなんかを始めたい人はPythonがとてもおすすめです。

コメント