アダブースト

アダブーストの説明として正しいものを選択肢から選んでください.

[選択肢]
1. 一つ目の学習器の予測結果から、訓練データに重みを付与する.このように重み付きデータを用いて逐次学習器を訓練していく.
 最終的に、最後の学習器を用いて予測を行う.
2. 一つ目の学習器の予測結果から、訓練データに重みを付与する.このように重み付きデータを用いて逐次学習器を訓練していく.
 最終的に、全ての学習器から得られた重み付きの予測値から、最終的な予測値を決定する.
3. 前の学習器の予測値と各データとの差をとることおで残差をえる.次の学習器は、一つ前の学習器から得られた残差とを訓練データとして学習する.
 同様の流れで残差を求め、この学習器と一つ前の学習器を足し合わせる.このようにして、最優的な予測を行う.

ブースティング

ブースティングについて説明している以下の文の空欄に入る適切な単語を選択肢からそれぞれ選んでください.

ブースティングは、複数の ( Q1 ____ ) を結合して ( Q2 ____ ) を作るあらゆるアンサンブルメソッドを指す.
具体的には、ベースとなる学習器を ( Q3 ____ ) に訓練する.つまり、前の学習器の学習結果を新しい学習器の訓練に利用する.

[Q1,Q2の選択肢]
1. 線形モデル
2. 訓練セット
3. 弱学習器
4. 強学習器

[Q3 の選択肢]
1. 逐次的
2. 最終的
3. 断片

アダブースト(AdaBoosting)- 決定株

次のコードで空欄になっている行に入る適切な選択肢を選び、AdaBoosting を実装してください.

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:AdaBoostClassifier クラスをインポートしてください.
from ########## import AdaBoostClassifier

[Q1 選択肢]
1. sklearn.ensemble
2. sklearn.metrics
3. sklearn.model_selection
4. sklearn.bagging

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

# Q2:AdaBoostingClassifier() クラスを用いて、決定木に AdaBoosting を適用してください.( 1 行 )
† :決定木の深さ 1 、学習器の数 100 、 アルゴリズム SAMME.R、学習率 0.5、random_state 0 と設定
ada_c = ##########
ada_c.fit(X_train, y_train)
y_pred = ada_c.predict(X_test)
print(accuracy_score(y_test, y_pred))

[Q2 の選択肢]
1. AdaBoostClassifier(
DecisionTreeClassifier(max_depth=1), n_estimators=100,
algorithm=”SAMME.R”, learning_rate=0.5, random_state=0)

2. AdaBoostClassifier(
DecisionTreeClassifier(1), n_estimators=100,
algorithm=”SAMME.R”, l_rate=0.5, random_state=0)

3. AdaBoostClassifier(
DecisionTreeClassifier(max_depth=1), n_estimators=00,
algorithm=”SAMME”, l_rate=0.5, random_state=0)

アダブースト(AdaBoosting)- 決定株

次のコードで空欄になっている行に入る適切な選択肢を選び、AdaBoosting を実装してください.

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:アダブースティングによるクラス分類用のクラスをインポートしてください.
from sklearn.ensemble import ##########

[Q1 選択肢]
1. DecisionTreeClassifier
2. GradientBosstingClassifier
3. RandomForestClassifier
4. AdaBoostClassifier

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

# Q2:AdaBoostingClassifier() クラスを用いて、決定木に AdaBoosting を適用してください.( 1 行 )
† :決定木の深さ 1 、学習器の数 100 、 アルゴリズム SAMME.R、学習率 0.5、random_state 0 と設定
ada_c = ##########
ada_c.fit(X_train, y_train)
y_pred = ada_c.predict(X_test)
print(accuracy_score(y_test, y_pred))

[Q2 の選択肢]
1. AdaBoostClassifier(
DecisionTreeClassifier(1), n_estimators=100,
algorithm=”SAMME.R”, l_rate=0.5, random_state=0)

2. AdaBoostClassifier(
DecisionTreeClassifier(max_depth=1), n_estimators=100,
algorithm=”SAMME.R”, learning_rate=0.5, random_state=0)

3. AdaBoostClassifier(
DecisionTreeClassifier(max_depth=1), n_estimators=00,
algorithm=”SAMME”, l_rate=0.5, random_state=0)

勾配ブースティング – 残差

勾配ブースティングを説明している以下の文の空欄に当てはまる単語を選択肢 1 ~ 3 から選んでください.

勾配ブースティングは、アダブーストと同様にベースとなる学習器を随時改良し、新たな学習器として追加していくが、
アダブーストのように重みを更新していくのではなく、新予測器を前の予測器の ( Q1 ____ ) に適合させようとする.

1. 自由度
2. 残差
3. 重み

アダブースト

アダブーストの説明として正しいものを選択肢から選んでください.

[選択肢]
1. 一つ目の学習器の予測結果から、訓練データに重みを付与する.このように重み付きデータを用いて逐次学習器を訓練していく.
 最終的に、最後の学習器を用いて予測を行う.
2. 前の学習器の予測値と各データとの差をとることおで残差をえる.次の学習器は、一つ前の学習器から得られた残差とを訓練データとして学習する.
 同様の流れで残差を求め、この学習器と一つ前の学習器を足し合わせる.このようにして、最優的な予測を行う.(モデルのコスト関数は二乗誤差とする)
3. 一つ目の学習器の予測結果から、訓練データに重みを付与する.このように重み付きデータを用いて逐次学習器を訓練していく.
 最終的に、全ての学習器から得られた重み付きの予測値から、最終的な予測値を決定する.

アダブースト

アダブーストの説明として正しいものを選択肢から選んでください.

[選択肢]
1. 前の学習器の予測値と各データとの差をとることおで残差をえる.次の学習器は、一つ前の学習器から得られた残差とを訓練データとして学習する.
 同様の流れで残差を求め、この学習器と一つ前の学習器を足し合わせる.このようにして、最優的な予測を行う.(モデルのコスト関数は二乗誤差とする)
2. 一つ目の学習器の予測結果から、訓練データに重みを付与する.このように重み付きデータを用いて逐次学習器を訓練していく.
 最終的に、最後の学習器を用いて予測を行う.
3. 一つ目の学習器の予測結果から、訓練データに重みを付与する.このように重み付きデータを用いて逐次学習器を訓練していく.
 最終的に、全ての学習器から得られた重み付きの予測値から、最終的な予測値を決定する.

勾配ブースティング決定木(GBRT)

以下のコードで空欄になっている行を埋め、勾配ブースティングを用いて変数 X, y を学習する回帰モデルを実装してください.

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)

import numpy as np

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

[Q1 選択肢]
1. sklearn.ensemble
2. sklearn.metrics
3. sklearn.model_selection
4. sklearn.bagging

np.random.seed(0)
X = np.random.rand(100, 1) – 0.5
y = 2*X[:, 0]**2 + 0.01 * np.random.randn(100)

# Q1:GradientBoostingClassifier() クラスを用いて、変数 X、y を学習させてください.( 2 行 )
# † :深さ 2、学習器の数 3、学習率 1.0、random_state 0 と設定
gbrt = ##########
gbrt.fit(X, y)

[Q1の選択肢]
1. GradientBoostingRegressor(max_depth=2, n_estimators=3, l_rate=1.0, random_state=0)
2. GradientBoostingRegressor(max_depth=3, n_estimators=2, learning_rate=0.1, random_state=0)
3. GradientBoostingRegressor(max_depth=2, n_estimators=3, learning_rate=1.0, random_state=0)

勾配ブースティング – 残差

勾配ブースティングを説明している以下の文の空欄に当てはまる単語を選択肢から選んでください.

勾配ブースティングは、アダブーストと同様にベースとなる学習器を随時改良し、新たな学習器として追加していくが、
アダブーストのように(Q1 ____ ) を更新していくのではなく、新予測器を前の予測器の ( Q2 ____ ) に適合させようとする.

[Q1–2 選択肢]
1. 残差
2. 自由度
3. 分散
4. 重み
5. 学習率
6. ノード数

Extra-Trees

Extra-Trees の説明として正しいものを選択肢 1 ~ 3 から選んでください.

1. Extra-Trees はランダムフォレストに比べて訓練に時間がかかる.
2. ExtraTrees では、個々の特徴量の閾値も無作為に探索するため、ランダムフォレストと比べ無作為性が上がる.よって、分散が下がりバイアスが上がる.
3. 基本的には、ランダムフォレストよりも Extra-Trees の方が高性能である.