0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

kaggle machine learning basic

Posted at

kaggle のラーニングを受けて理解を深めるための記事
マシンラーニング初心者向け

使用データHousing Prices Competition for Kaggle Learn Users
https://www.kaggle.com/c/home-data-for-ml-course

まずは基本のデータ読み込み、モデル作成、予測、評価、投稿データ作成について

データ読み込み

まずは上記リンクからデータダウンロード
image.png

test.csv train.csvのみでまずは十分

使用ライブラリ
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_absolute_error

データの読み込み
X_full = pd.read_csv('train.csv', index_col='Id')
X_test_full = pd.read_csv('test.csv', index_col='Id')

X_test_full はあとで使うのでとりあえず放置

X_full で予測、評価まで実施

X_fullのなかからSalePriceをyに入れ込む、
これをトレーニングデータの予測値とする
y = X_full.SalePrice

予測データ作成
今回はお試しの予想なので、数値データの都合のいいものだけ抜き出し。

features = ['LotArea', 'YearBuilt', '1stFlrSF', '2ndFlrSF', 'FullBath', 'BedroomAbvGr', 'TotRmsAbvGrd']

この7つを抜き出し訓練データXとして使う
X = X_full[features] 
Featuresの中に7個の列名が入っているのでこれでXに抜き出されたデータ格納

X_train, X_valid, y_train, y_valid = train_test_split(X, y, train_size=0.8, test_size=0.2,random_state=0)

訓練データを分割して訓練データ、テストデータとする

モデル作成及びトレーニング
model = RandomForestRegressor(n_estimators=50, random_state=0)
model.fit(X_train, y_train)
preds = model.predict(X_valid)

ここでmodelとしているが名前は何でもいい、fit,modelの前の名前があっていればOK
今回はランダムフォレスト使用(なんでもいいがまずはお手頃な)
詳しい説明はこちら
https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestRegressor.html
n_estimatorsなどいろいろあるが、慣れたらここら辺のパラメータも使用

これでPredsの中に訓練データで学習したデータからテストデータのXを用いて予測したyが出力される。

※スコア評価
今回はMAEを使用、要は予想した値と実際の値を引いて、全データ足し合わせたやつ

mean_absolute_error(y_valid, preds)

これでだいたい24000くらい、いいか悪いかはおいておいてこの数字。
0になるのが一番いい予想

本当はいろいろな比較をして最終的なデータを使用するが、
今回はランダムフォレストの枝が50のデータで予測

Predictの部分を一番初めに入れた予測データに置き換え
preds_test = my_model.predict(X_test)

これがKaggleで要求されている提出フォーマット
output = pd.DataFrame({'Id': X_test.index,
'SalePrice': preds_test})
output.to_csv('submission.csv', index=False)

このCSVを提出すれば結果が出てくる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?