강의

멘토링

로드맵

[仕事終わりの趣味] ビッグデータ分析実技 (作業型1,2,3)

非専門家や入門者の方が、ビッグデータ分析実技試験を短期間で取得できるようガイドします! 理論は軽めに、実践は確実に。複雑な背景知識がなくても、過去問を中心に試験に必ず出るポイントだけを絞って集中的に学習します。

難易度 入門

受講期間 12か月

Engineer Big Data Analysis
Engineer Big Data Analysis
Big Data
Big Data
Python
Python
Pandas
Pandas
Machine Learning(ML)
Machine Learning(ML)
Engineer Big Data Analysis
Engineer Big Data Analysis
Big Data
Big Data
Python
Python
Pandas
Pandas
Machine Learning(ML)
Machine Learning(ML)
roadmap님의 프로필 이미지

修正済み

作業型2 コード整理(全体学習、パラメータはデフォルト値を推奨)

今回のデータで注意深く見ていただくべき部分は

  1. 全データ(注釈5番)の学習です。比較後、全学習コードを入れておきました。結果を比較してみましょう!

  2. パラメーター(class_weight、ハイパーパラメーターなど)は、無条件に追加・変更すれば良くなるというものではありません。検証セットで直接

    比較して採用するかどうかを決めなければなりません。
    試験の状況でパラメータの判断に迷う場合は、デフォルト値(設定していない状態)で進めましょう。安定していることが重要だと思います!
    もちろん、全データ学習も良い選択です!



  1. コーディングパン(https://code.sideonai.com/)に作業型2の問題をアップデートしました。

  2. ビッグデータ分析士の講義部分のすべてのコードにlightgbmを追加しました。 (

image.png




コーディングパン作業型2のベースラインをご案内します。EDA部分は除外しました。


1番目の問題

import pandas as pd

# 1) データの読み込み
train = pd.read_csv('data/car_train.csv')
test = pd.read_csv('data/car_test.csv')


# 2) カテゴリ変数のワンホットエンコーディング 
target = train.pop('target')

print(train.shape, test.shape)
train = pd.get_dummies(train)
test = pd.get_dummies(test)
print(train.shape, test.shape)

# 3) 検証用データの分割 (提出前の性能比較)
from sklearn.model_selection import train_test_split
X_tr, X_val, y_tr, y_val = train_test_split(train, target, test_size=0.2, random_state=0, stratify=target)


# 4) 3つのモデルの学習 
from sklearn.ensemble import RandomForestClassifier
rf = RandomForestClassifier(random_state=0)
rf.fit(X_tr, y_tr)
pred = rf.predict(X_val)

from sklearn.metrics import f1_score
print(f1_score(y_val, pred, average='macro'))

from lightgbm import LGBMClassifier
lgb = LGBMClassifier(random_state=0, verbose=-1)
lgb.fit(X_tr, y_tr)
pred = lgb.predict(X_val)
print(f1_score(y_val, pred, average='macro'))

from xgboost import XGBClassifier
xgb = XGBClassifier(random_state=0, verbosity=0)
xgb.fit(X_tr, y_tr)
pred = xgb.predict(X_val)
print(f1_score(y_val, pred, average='macro'))

# 5) 選択したモデルを全trainデータで再学習後、testを予測 (選択)
# lgb.fit(train, target)
# pred = lgb.predict(test)

# 6) 提出ファイルの保存 (predカラム1つのみ、indexは除外)
result = pd.DataFrame({'pred': pred})
result.to_csv('result.csv', index=False)


# 提出ファイルの確認
print("\n ===== 提出ファイル (サンプル) =====")
print(pd.read_csv("result.csv").head())

print("\n ===== 提出ファイル (サイズの確認) =====")
print(pd.read_csv("result.csv").shape)


2番の問題


import pandas as pd

# 1) データの読み込み
train = pd.read_csv('data/bike_train.csv')
test = pd.read_csv('data/bike_test.csv')

# 2) カテゴリ変数のワンホットエンコーディング 
target = train.pop('count')

print(train.shape, test.shape)
train = pd.get_dummies(train)
test = pd.get_dummies(test)
print(train.shape, test.shape)

# 3) 検証用データの分割 (提出前の性能比較)
from sklearn.model_selection import train_test_split
X_tr, X_val, y_tr, y_val = train_test_split(train, target, test_size=0.2, random_state=0)

# 4) 3つのモデルの学習
from sklearn.ensemble import RandomForestRegressor
rf = RandomForestRegressor(random_state=0)
rf.fit(X_tr, y_tr)
pred = rf.predict(X_val)

from sklearn.metrics import root_mean_squared_error
print(root_mean_squared_error(y_val, pred))

from lightgbm import LGBMRegressor
lgb = LGBMRegressor(random_state=0, verbose=-1)
lgb.fit(X_tr, y_tr)
pred = lgb.predict(X_val)
print(root_mean_squared_error(y_val, pred))

from xgboost import XGBRegressor
xgb = XGBRegressor(random_state=0, verbosity=0)
xgb.fit(X_tr, y_tr)
pred = xgb.predict(X_val)
print(root_mean_squared_error(y_val, pred))

# 5) 選択したモデルを全trainデータで再学習し、testを予測 (選択)
# lgb.fit(train, target) 
# pred = lgb.predict(test)

# 6) 提出ファイルの保存 (predカラム1つのみ、indexは除外)
result = pd.DataFrame({'pred': pred})
result.to_csv('result.csv', index=False)

# 提出ファイルの確認
print("\n ===== 提出ファイル (サンプル) =====")
print(pd.read_csv("result.csv").head())

print("\n ===== 提出ファイル (サイズ確認) =====")
print(pd.read_csv("result.csv").shape)
コメント