大数の法則

アンサンブル学習を説明しいている以下の文で空欄に入る適切な単語を選択肢 1 ~ 3 からそれぞれ選んでください.

アンサブル学習による予測の精度を向上させるためには、
大数の法則に従い (Q1 ____ ) 、予測器相互の ( Q2 ____ ) を高くするなどの方法が挙げられる.

[Q1の選択肢]
1. epoch 数を増やし
2. 線形回帰モデルを使用せず
3. 予測器の数を増やし

[Q2の選択肢]
1. 創造性
2. 独立性
3. 類似性

大数の法則

アンサンブル学習を説明しいている以下の文で空欄に入る適切な単語を選択肢 1 ~ 3 からそれぞれ選んでください.

アンサブル学習による予測の精度を向上させるためには、
大数の法則に従い (Q1 ____ ) 、予測器相互の ( Q2 ____ ) を高くするなどの方法が挙げられる.

[Q1の選択肢]
1. 予測器の数を増やし
2. 線形回帰モデルを使用せず
3. epoch 数を増やし

[Q2の選択肢]
1. 類似性
2. 創造性
3. 独立性

バギング 、ペースティング

バギングとペースティングの説明として正しくないものを選択肢から選んでください.

[選択肢]
1. CPU との相性が良く、スケーラビリティの高さから人気がある.
2. 分類器のアルゴリズムはそれぞれ異なっており、全ての分類器に対して同一の訓練データで訓練する
3. 単体の決定木と比べて、バイアス、分散とみもに低くなる.
4. バギングはブートストラップ法とも呼ばれる.

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

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

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)

ハード投票分類器

下記の設問に対する答えとして相応しものを選択肢から選び、次のコードの空欄(##########)を埋めてください.
ロジスティック回帰、ランダムフォレスト、SVM をそれぞれ分類器として用いてハード投票によるアンサブル学習を実行してください.

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:RandomForestClassifier クラスをインポートしてください.
from ########## import RandomForestClassifier
#Q2:VotingClassifier クラスをインポートしてください.
from ########## import VotingClassifier
#Q3:LogisticRegresson クラスをインポートしてください.
from ########## import LogisticRegression
#Q4:SVC クラスをインポートしてください.
from ########## import SVC
from sklearn.metrics import accuracy_score

[Q1–4 選択肢]
1. sklearn.linear_model
2. sklearn.svm
3. sklearn.ensemble
4. sklearn.tree

log_c = LogisticRegression(solver=”liblinear”, random_state=42)
rnd_c = RandomForestClassifier(n_estimators=10, random_state=42)
svm_c = SVC(gamma=”auto”, random_state=42)

# Q5:VotingClassifier() クラスを用いてソフト投票による投票分類器を訓練してください.( 1 行 )
voting_c = ##########

voting_c.fit(X_train, y_train)

for c in (log_c, rnd_c, svm_c, voting_c):
c.fit(X_train, y_train)
y_pred = c.predict(X_test)
print(c.__class__.__name__, accuracy_score(y_test, y_pred))

[Q5 の選択肢]
1.
VotingClassifier(
estimators=[(‘rf’, rnd_c), (‘lr’, log_c), (‘svc’, svm_c)],
voting=’soft’)
2.
VotingClassifier(
estimators=[(‘rf’, rnd_c), (‘lr’, log_c), (‘svc’, “soft”)],
voting=True)
3.
VotingClassifier(
estimators=[(‘rf’, log_c), (‘lr’, rnd_c), (‘svc’, svm_c)],
voting=’hard’)

ハード投票分類器

下記の設問に対する答えとして相応しものを選択肢から選び、次のコードの空欄(##########)を埋めてください.
ロジスティック回帰、決定木、SVM をそれぞれ分類器として用いてハード投票によるアンサブル学習を実行してください.

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:DecisionTreeClassifierクラスをインポートしてください.
from ########## import DecisionTreeClassifier
#Q2:VotingClassifier クラスをインポートしてください.
from ########## import VotingClassifier
#Q3:LogisticRegresson クラスをインポートしてください.
from ########## import LogisticRegression
#Q4:SVC クラスをインポートしてください.
from ########## import SVC
from sklearn.metrics import accuracy_score

[Q1–4 選択肢]
1. sklearn.linear_model
2. sklearn.svm
3. sklearn.ensemble
4. sklearn.tree

log_c = LogisticRegression(solver=”liblinear”, random_state=42)
tree_c = DecisionTreeClassifier(max_depth=3, random_state=42)
svm_c = SVC(gamma=”auto”, random_state=42)

# Q5:VotingClassifier() クラスを用いてソフト投票による投票分類器を訓練してください.( 1 行 )
voting_c = ##########

voting_c.fit(X_train, y_train)

for c in (log_c, rnd_c, svm_c, voting_c):
c.fit(X_train, y_train)
y_pred = c.predict(X_test)
print(c.__class__.__name__, accuracy_score(y_test, y_pred))

[Q5 の選択肢]
1.
VotingClassifier(
estimators=[(‘tree’, tree_c), (‘lr’, log_c), (‘svc’, svm_c)],
voting=’soft’)
2.
VotingClassifier(
estimators=[(‘treee’, tree_c), (‘lr’, log_c), (‘svc’, “soft”)],
voting=True)
3.
VotingClassifier(
estimators=[(‘treee’, log_c), (‘lr’, rnd_c), (‘svc’, svm_c)],
voting=’hard’)

ハード分類器、ソフト分類器

ハード分離器、または、ソフト分離器の説明として正しいものを選択肢から選んでください.

[選択肢]
1. ハード分類器では、それぞれの分類器の予測結果を平均することで最終的な予測結果を決定する.
2. ソフト分類器では、自信の分類器の予測結果が最終的な結果に反映されやすい.
3. ソフト分類器では、それぞれの分類器の予測結果から多数決をとり、最終的な予測結果を決定する.
4. ソフト分離器よりもハード分離器の方が、性能は高くなりやすい.

ハード分類器、ソフト分類器

ハード分離器、または、ソフト分離器の説明として正しくないものを選択肢から選んでください.

[選択肢]
1. ソフト分類器では、それぞれの分類器の予測結果を平均することで最終的な予測結果を決定する.
2. ソフト分類器では、自信の分類器の予測結果が最終的な結果に反映されやすい.
3. ハード分類器では、それぞれの分類器の予測結果から多数決をとり、最終的な予測結果を決定する.
4. ソフト分離器よりもハード分離器の方が、性能は高くなりやすい.

バギング 、ペースティング

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

バギングとペースティングはともに、全ての予測器で同じ訓練アルゴリズムを用いるが、訓練セットからランダムにサンプリングしてきた
サブセットを用いて、予測器を訓練するため、それぞれの予測器の独立性を担保している.

サンプリングする際に、それぞれの予測器の訓練サブセットに重複を認めるのが ( Q1 _____ ) である.

[選択肢]
1. ソフトマックス
2. ペースティング
3. バギングとペースティング
4. バギングとブースティング

バギング 、ペースティング

バギングとペースティングの説明として正しいものを選択肢から選んでください.

[選択肢]
1. 使用するそれぞれの分類器のアルゴリズムは異なる.
2. それぞれの分類器に与える訓練データが異なる.
3. それぞれの分離器で用いられるアルゴリズムと訓練セットは同一のものである.
4. ペースティングはブートストラップ法とも呼ばれる.