バギングによるアンサンブル学習の実装

次のコードで空欄になっている行に入る適切な選択肢を選び、バギングによるアンサンブル学習モデルを訓練してください.

from sklearn.model_selection import train_test_split
from sklearn.datasets import make_moons

X, y = make_moons(n_samples=500, noise=0.30, random_state=42)
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)

# Q1:BaggingClassifier をインポートしてください.
from ########## import BaggingClassifier

[Q1 選択肢]
1. sklearn.ensemble
2. sklearn.tree
3. sklearn.decomopsition
4. sklearn.model_selection

from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score

# Q2:BaggingClassifier() クラスを用いてバギングありで決定木をアンサンブル学習させてください.( 1 行 )
# † :学習器の数は 500、random_state = 0、 CPU コアは全て使用してください.

bag_c = ##########
bag_c.fit(X_train, y_train)
y_pred = bag_c.predict(X_test)

print(accuracy_score(y_test, y_pred))

[Q2の選択肢]
1.
BaggingClassifier(
DecisionTreeClassifier(random_state=0, max_iter=100), estimators=500,
bootstrap=False, n_jobs=1, random_state=0)
2.
BaggingClassifier(
DecisionTreeClassifier(random_state=0), n_estimators=500,
max_samples=100, bootstrap=True, n_jobs=-1, random_state=0)

3.
BaggingClassifier(
 n_estimators=500, max_samples=100,
 bootstrap=True, n_jobs=1, random_state=0)

回帰木の過学習

回帰木の訓練について説明している以下の文の空欄に入る適切な単語を選択肢 1 ~ 3 から選んでください.

決定木による回帰では分類と同様に過学習が起きやすい.
回帰木の正則化としては、分類タスクと同様に 、まず( Q1 ____ ) を減らすことで自由度を下げてみることなどが挙げられる.

1. コスト関数
2. 葉ノードの数
3. 正則化項の大きさ

回帰木

次のコードで空欄になっている行を埋め、変数 X、y を用いて CART 回帰モデルを訓練してください.

import numpy as np

# Q1:DecisionTreeRegressor クラスをインポートしてください.
from ########## import DecisionTreeRegressor

[選択肢]
1. sklearn.linera_model
2. sklearn.tree
3. sklearn.ensemble
4. sklearn.SVM

np.random.seed(0)
m = 150
X = np.random.rand(m, 1)
y = 3 * (X – 0.25) ** 2
y = y + np.random.randn(m, 1) / 10

# Q2:変数 X、y を用いて深さ 2 の CART 回帰モデルを訓練してください.
tree_reg = ##########
tree_reg.fit(X, y)
print(tree_reg)

[Q2の選択肢]
1. DecisionTreeRegressor(max_depth=2, random_state=0)
2. DecisionTreeRegressor(depth=2, random_state=0)
3. DecisionTreeRegressor(max_iter=2, random_state=0)

回帰木

次のコードで空欄になっている行を埋め、変数 X、y を用いて CART 回帰モデルを訓練してください.

import numpy as np

# Q1:DecisionTreeRegressor クラスをインポートしてください.
from ########## import DecisionTreeRegressor

[選択肢]
1. sklearn.linera_model
2. sklearn.ensemble
3. sklearn.tree
4. sklearn.SVM

np.random.seed(0)
m = 150
X = np.random.rand(m, 1)
y = 3 * (X – 0.25) ** 2
y = y + np.random.randn(m, 1) / 10

# Q2:変数 X、y を用いて深さ 2 の CART 回帰モデルを訓練してください.
tree_reg = ##########
tree_reg.fit(X, y)
print(tree_reg)

[Q2の選択肢]
1. DecisionTreeRegressor(max_iter=2, random_state=0)
2. DecisionTreeRegressor(depth=2, random_state=0)
3. DecisionTreeRegressor(max_depth=2, random_state=0)

回帰木の過学習

回帰木の訓練について説明している以下の文の空欄に入る適切な単語を選択肢 1 ~ 3 から選んでください.

決定木による回帰では分類と同様に過学習が起きやすい.
回帰木の正則化としては、分類タスクと同様に 、まず( Q1 ____ ) を減らすことで自由度を下げてみることなどが挙げられる.

1. コスト関数
2. 正則化項の大きさ
3. 葉ノードの数

不安定性 – 訓練セットの回転

決定木の欠点について説明している以下の文で空欄に入る適切な単語を選択肢 1 ~ 3 から選んでください.

決定木の決定境界は軸に対して ( Q1 ____ ) となる.
よって、単純な決定境界で正確に訓練セットを分割できていたとしても、訓練セットが ( Q2 ____ ) と、
途端に分割が困難となり決定境界が複雑になる.この問題の対策として、訓練セットの向きを適当な方向へ回転させるために ( Q3 ____ ) を使うと良い.

[Q1の選択肢]
1. 垂直
2. 平行
3. 斜め

[Q2の選択肢]
1. 回転する
2. 大きくなる
3. 複数になる

[Q3の選択肢]
1. グリッドサーチ
2. 交差エントロピー
3. 主成分分析 ( PCA )

対策 – 多数決

決定木の訓練について説明している以下の文で空欄に入る適切な単語を選択肢 1 ~ 3 から選んでください.

決定木は訓練セットの小さな変化に対して敏感すぎる.
決定木では random_state ハイパーパラメータの設定をしない限り、
同じ訓練セットを使っていたとしても大きく異なるモデルが作られることがある.
よって、最適なモデルを選ぶために 多数の木を用いて予測し、その予測の ( Q1 ____ ) を求めると良い

1. 最大値
2. 平均値
3. 中央値

アンサンブル学習とは

アンサンブルメソッドについて説明しいている以下の文で空欄に入る適切な単語を選択肢 1 ~ 3 から選んでください.

アンサンブル学習は複数の予測器の予測結果を集め、 ( Q1 ____ ) ことで最良の予測結果を決定する手法である.

1. 多数決する
2. ランダム抽出する
3. 最適と思われる結果を探し出す

アンサンブル学習とは

アンサブル学習の説明として正しいものを選択肢から選んでください.

[選択肢]
1. アンサブル学習に用いる分類器相互の独立性が高いほど、性能が向上する
2. アンサブル学習では、同一のハイパーパラメータが設定されている同じモデルを複数個訓練し、それぞれのモデルから得られた集合知を元にして、
 予測結果を決定する.
3. アンサブル学習では、それぞれの予測器の出力から、交差エントロピーを用いて、最終的な予測結果を確定する.
4. アンサブル学習で用いられる分類器は決定木のみである.