Kaggle Tutorial 1 - Introduce to ML
kaggle
python random stateについて
csvファイルは、データを区切るテキスト型ファイルです.Excelで開くこともできますし、Excelファイルからcsvファイルに変更することもできます.
decision treeは、各問題でデータセットを分割することを意味する.深さが深いほど、データは細かくなります.
前にfeature、後ろにtargetを追加します.(targetは予測が必要な値)
MAEは
これは
したがって、
次のコードは、
これは、
ランダム森林記述サイト
これには、次のような用途があります.
python random stateについて
1.csvファイルを開く
csvファイルは、データを区切るテキスト型ファイルです.Excelで開くこともできますし、Excelファイルからcsvファイルに変更することもできます.
import pandas as pd
path = '...'
csv_data = pd.read_csv(path)
csv_data.describe()
上記の方法で読むことができます.y = csv_data.Price
feature = [...,...]
X = csv_data[feature]
これによりtargetとfeatureを別々に格納できます.2. decision tree
decision treeは、各問題でデータセットを分割することを意味する.深さが深いほど、データは細かくなります.
from sklearn.tree import DecisionTreeRegressor
tree_model = DecisionTreeRegressor(random_state=1)
tree_model.fit(X, y)
これによりモデルを宣言しfit(訓練)を行うことができる.前にfeature、後ろにtargetを追加します.(targetは予測が必要な値)
3.MAEを用いて予測値と実績値の差異を求める
MAEは
Mean Average Error
の略語で、実際の値と予測値の平均値の違いを教えてくれます.これは
model
のvalidation
を検査して、decision tree
で計算して、leaf
のdepth
がどれだけ大きいかによって、MAE
は異なって、それを利用して最も良いdepth
を見つけることができます.from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_average_error as mae
train_X, test_X, train_y, test_y = train_test_split(X, y, random_state=0)
model = DecisionTreeRegressor()
model.fit(train_X, train_y)
predictions = model.predict(test_X)
print(mae(test_y, predictions))
上記はtrainデータで学習したモデルにテストデータを入れ,予測値の適合度を評価するコードである.4. Overfitting, Underfitting
Overfitting
対train data
の訓練はあまりにも適切で、test data(new data)
に対する予測値は多く間違っているが、Underfitting
対train data
の予測値はあまり適切ではなく、訓練が柔軟すぎて、train data
とtest dataの精度が低下した.したがって、
decision tree
では、depth
が高いほどOverfitting
が高くなり、Underfitting
が低くなる.次のコードは、
depth
を複数に分割し、最適なdepth
を見つけます.これは、
DecisionTreeRegressor
のmax_leaf_nodes
によって調整される.def get_mae(i, train_X, test_X, train_y, test_y):
model = DecisionRegressor(max_leaf_nodes=i, random_state=1)
model.fit(train_X, train_y)
predictions = model.predict(test_X)
mae_value = mae(test_y, predictions)
return max_value
depth = [1, 5, 50, 500]
key_mae = {i: get_mae(i, train_X, test_X, train_y, test_y) for i in depth}
best_depth = min(key_mae, key=key_mae.get)
この方法でparameter
を求めることができ、最適なdepth
を訓練することができる.5.best depthの使用
ランダム森林記述サイト
これには、次のような用途があります.
from sklearn.ensemble import RandomForestRegressor
残りは同じですが、model
にはRandom Forest
はありません.この点に注意してほしい.Reference
この問題について(Kaggle Tutorial 1 - Introduce to ML), 我々は、より多くの情報をここで見つけました https://velog.io/@wbsl0427/Kaggle-Tutorial-1-Introduce-to-MLテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol