こんにちは、しらすです。
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がとてもおすすめです。
コメント