Python3エンジニア認定データ分析試験 ⑦ scikit-learn(次元削減・評価・最適化・クラスタリング)

scikit-learnの後半。主成分分析による次元削減と寄与率、モデル評価としての混同行列、適合率・再現率・F値・正解率、ROC曲線とAUCの読み方、交差検証とハイパーパラメータ探索(グリッドサーチ)を扱う。教師なし学習ではk-means(クラスタ数の決め方、エルボー法)と階層的クラスタリング(デンドログラム)。公式の出題範囲では⑥と合わせて8問・20%。つまずきどころは、適合率と再現率がそれぞれ何を見ている指標かの取り違えと、不均衡データで正解率だけを見ると評価を誤ること。混同行列の4区分から各指標を自力で導けるようにしておきたい。

この分野の問題35問を、選択肢・正解・解説つきで掲載しています。まず自分で解答を考えてから「正解と解説を見る」を開いて答え合わせをしてください。

クイズモードで挑戦 →

233次元削減を説明した文として、最も適切なものはどれですか。

  1. A元々の特徴量を分類ラベルに基づいてグループ化し全体のデータ数を削減するタスク
  2. Bデータが持っている情報を維持するために特徴量の数を10万個以上に増やすタスク
  3. Cモデルの予測精度を高めるために特徴量同士を掛け合わせて新たな次元を作るタスク
  4. D元の次元からそれほど情報を落とすことなく数個〜数十個の新しい特徴量を抽出するタスク
正解と解説を見る

正解:D元の次元からそれほど情報を落とすことなく数個〜数十個の新しい特徴量を抽出するタスク

次元削減とはデータが持っている情報をなるべく損ねることなく次元を削減してデータを圧縮するタスクです。

この問題の解説ページを開く →

234scikit-learnで主成分分析(PCA)を実行する際、使用するモジュールはどれですか。

  1. Asklearn.model_selection
  2. Bsklearn.decomposition
  3. Csklearn.cluster
  4. Dsklearn.metrics
正解と解説を見る

正解:Bsklearn.decomposition

主成分分析を実行するには、decompositionモジュールのPCAクラスを使用します。

この問題の解説ページを開く →

235PCAクラスをインスタンス化する際、引数「n_components=2」に指定する意味として正しいものはどれですか。

  1. Aクラスタリングにおけるクラスタ数を2に指定すること
  2. B主成分分析により新たな2変数に変換すること
  3. C主成分分析を実行する回数を2回に設定すること
  4. D学習データとテストデータの2つに分割すること
正解と解説を見る

正解:B主成分分析により新たな2変数に変換すること

n_componentsに2を指定することは、主成分分析により新たな2変数(主成分)に変換することを意味します。

この問題の解説ページを開く →

236主成分分析によって変換された新たな変数のうち、1番目の主成分と2番目の主成分の名称の組み合わせとして正しいものはどれですか。

  1. A第1次元、第2次元
  2. B第1主成分、第2主成分
  3. C主成分A、主成分B
  4. DPC0、PC1
正解と解説を見る

正解:B第1主成分、第2主成分

1番目の主成分を第1主成分、2番目の主成分を第2主成分と呼びます。

この問題の解説ページを開く →

237混同行列における「tp(真陽性)」の定義として正しいものはどれですか。

  1. A正例と予測したが実際は負例だった件数
  2. B負例と予測したが実際は正例だった件数
  3. C負例と予測して実際に負例だった件数
  4. D正例と予測して実際に正例だった件数
正解と解説を見る

正解:D正例と予測して実際に正例だった件数

tp(True Positive)は正例と予測して実際に正例だった件数を表します。

この問題の解説ページを開く →

238混同行列における「fp(偽陽性)」の定義として正しいものはどれですか。

  1. A正例と予測して実際に正例だった件数
  2. B負例と予測したが実際は正例だった件数
  3. C負例と予測して実際に負例だった件数
  4. D正例と予測したが実際は負例だった件数
正解と解説を見る

正解:D正例と予測したが実際は負例だった件数

fp(False Positive)は正例と予測したが実際は負例だった件数を表します。

この問題の解説ページを開く →

239混同行列における「fn(偽陰性)」の定義として正しいものはどれですか。

  1. A負例と予測したが実際は正例だった件数
  2. B正例と予測して実際に正例だった件数
  3. C正例と予測したが実際は負例だった件数
  4. D負例と予測して実際に負例だった件数
正解と解説を見る

正解:A負例と予測したが実際は正例だった件数

fn(False Negative)は負例と予測したが実際は正例だった件数を表します。

この問題の解説ページを開く →

240混同行列における「tn(真陰性)」の定義として正しいものはどれですか。

  1. A負例と予測して実際に負例だった件数
  2. B正例と予測して実際に正例だった件数
  3. C正例と予測したが実際は負例だった件数
  4. D負例と予測したが実際は正例だった件数
正解と解説を見る

正解:A負例と予測して実際に負例だった件数

tn(True Negative)は負例と予測して実際に負例だった件数を表します。

この問題の解説ページを開く →

241正例における「適合率(precision)」を求める式はどれですか。

  1. A(tp + tn) / (tp + fp + fn + tn)
  2. B2 * tp / (2 * tp + fp + fn)
  3. Ctp / (tp + fp)
  4. Dtp / (tp + fn)
正解と解説を見る

正解:Ctp / (tp + fp)

適合率は正例と予測したデータのうち実際に正例である割合であり、tp / (tp + fp) で定義されます。

この問題の解説ページを開く →

242正例における「再現率(recall)」を求める式はどれですか。

  1. Atp / (tp + fn)
  2. Btp / (tp + fp)
  3. C(tp + tn) / (tp + fp + fn + tn)
  4. D2 * tp / (2 * tp + fp + fn)
正解と解説を見る

正解:Atp / (tp + fn)

再現率は実際の正例のうち正例と予測したものの割合であり、tp / (tp + fn) で定義されます。

この問題の解説ページを開く →

243「F値(F-Value)」の定義として正しいものはどれですか。

  1. A再現率と正解率の相乗平均
  2. B適合率と再現率の調和平均
  3. C適合率と再現率の相加平均
  4. D適合率と正解率の調和平均
正解と解説を見る

正解:B適合率と再現率の調和平均

F値は適合率と再現率の調和平均として定義されます。

この問題の解説ページを開く →

244適合率と再現率の関係およびF値に関する記述として、最も適切なものはどれですか。

  1. A適合率と再現率のバランスが崩れた場合のみF値は正解率よりも高い値を示す性質がある
  2. B適合率と再現率は独立しておりどのようなモデルでもF値は常に1.00になる
  3. C一般的に適合率と再現率はトレードオフの関係にありバランスの良い値を目指すときにF値を重視する
  4. D適合率と再現率は比例関係にあり一方が高くなるともう一方も必ず高くなるためF値は常に一定である
正解と解説を見る

正解:C一般的に適合率と再現率はトレードオフの関係にありバランスの良い値を目指すときにF値を重視する

一般的に適合率と再現率はトレードオフの関係にあり、両方のバランスが良い値を目指すときにF値を重視します。

この問題の解説ページを開く →

245「正解率(accuracy)」を求める式として正しいものはどれですか。

  1. Atp / (tp + fn)
  2. B(tp + fp) / (tp + tn + fn + fp)
  3. C(tp + tn) / (tp + fp + fn + tn)
  4. Dtp / (tp + fp)
正解と解説を見る

正解:C(tp + tn) / (tp + fp + fn + tn)

正解率は予測と実績が一致したデータの割合であり、(tp + tn) / (tp + fp + fn + tn) で定義されます。

この問題の解説ページを開く →

246適合率、再現率、F値を出力するために便利なscikit-learnの関数はどれですか。

  1. Aconfusion_matrix
  2. Broc_curve
  3. Ccross_val_score
  4. Dclassification_report
正解と解説を見る

正解:Dclassification_report

予測結果の適合率、再現率、F値を出力するには、classification_report関数が便利です。

この問題の解説ページを開く →

247k分割交差検証を説明した記述として、最も適切なものはどれですか。

  1. Aデータをランダムに分割して最適なクラスタ数が得られるまでクラスタリングを繰り返す処理
  2. Bデータの特徴量を複数のグループに分割し主成分分析によって次元削減を行う処理
  3. Cデータセットを学習用とテスト用に分割する処理を繰り返しモデルの構築と評価を複数回行う処理
  4. Dすべてのデータを1つの集合として学習させ同じデータに対して予測を行い評価する処理
正解と解説を見る

正解:Cデータセットを学習用とテスト用に分割する処理を繰り返しモデルの構築と評価を複数回行う処理

交差検証はデータセットを学習用とテスト用に分割する処理を繰り返し、構築と評価を複数回行う方法です。

この問題の解説ページを開く →

248層化k分割交差検証の説明として正しいものはどれですか。

  1. A説明変数の値がすべての分割で同じになるk分割交差検証
  2. B学習データセットとテストデータセットの件数が完全に同じになるk分割交差検証
  3. Cデータの欠損値の割合を均等にして行うk分割交差検証
  4. D目的変数(クラスラベル)のクラスの割合が一定となるk分割交差検証
正解と解説を見る

正解:D目的変数(クラスラベル)のクラスの割合が一定となるk分割交差検証

目的変数のクラスの割合が一定となるk分割交差検証は、特に層化k分割交差検証と呼ばれます。

この問題の解説ページを開く →

249scikit-learnで交差検証を実行するcross_val_score関数に関する説明として、正しいものはどれですか。

  1. Across_val_score関数の引数cvには評価指標の名称を指定する
  2. Bcross_val_score関数の引数scoringには分割数を指定する
  3. C分類器かつ目的変数が2値/多クラスでcvに整数やNoneを指定した場合は層化k分割交差検証が使われる
  4. Dcross_val_score関数はデフォルトで必ず2分割の交差検証を実行する
正解と解説を見る

正解:C分類器かつ目的変数が2値/多クラスでcvに整数やNoneを指定した場合は層化k分割交差検証が使われる

cross_val_scoreは分類器で目的変数が2値/多クラスの場合はStratifiedKFold(層化k分割)、それ以外はKFoldが使われます。

この問題の解説ページを開く →

250ROC曲線の横軸と縦軸の組み合わせとして正しいものはどれですか。

  1. A横軸:偽陽性率、縦軸:真陽性率
  2. B横軸:真陽性率、縦軸:偽陽性率
  3. C横軸:適合率、縦軸:再現率
  4. D横軸:再現率、縦軸:適合率
正解と解説を見る

正解:A横軸:偽陽性率、縦軸:真陽性率

ROC曲線は、横軸に偽陽性率、縦軸に真陽性率をプロットします。

この問題の解説ページを開く →

251予測確率の正確さを定量化する指標である「AUC」の値に関する説明として、正しいものはどれですか。

  1. A値が1に近付くほど区別する能力が優れており0.5に近付くほどランダムに混じっている状態に対応する
  2. B値が0.5に近付くほど区別する能力が優れており1に近付くほど区別ができなくなる
  3. C値が0に近付くほど正例と負例を完全に区別できていることを表す
  4. D値は0から100の範囲を取り50が最もバランスの良いモデルを表す
正解と解説を見る

正解:A値が1に近付くほど区別する能力が優れており0.5に近付くほどランダムに混じっている状態に対応する

AUCは1に近づくほど正例と負例の区別能力に優れ、0.5に近づくほどランダムに混じっていることに対応します。

この問題の解説ページを開く →

252scikit-learnでROC曲線の元となる真陽性率、偽陽性率、しきい値を算出する関数はどれですか。

  1. Aclassification_report
  2. Bcross_val_score
  3. Croc_curve
  4. Droc_auc_score
正解と解説を見る

正解:Croc_curve

ROC曲線の元となる真陽性率、偽陽性率、しきい値は、metricsモジュールのroc_curve関数により計算できます。

この問題の解説ページを開く →

253scikit-learnでAUCを計算するための関数はどれですか。

  1. Aclassification_report
  2. Broc_auc_score
  3. Croc_curve
  4. Dconfusion_matrix
正解と解説を見る

正解:Broc_auc_score

AUCは、metricsモジュールのroc_auc_score関数を用いて計算できます。

この問題の解説ページを開く →

254機械学習アルゴリズムにおける「ハイパーパラメータ」の説明として、正しいものはどれですか。

  1. A学習データから最小二乗法などを用いて自動的に一意に算出されるパラメータ
  2. Bモデルの予測結果として出力されるカテゴリラベルや予測確率のこと
  3. Cデータセットを学習用とテスト用に分割する際の乱数のシード値のこと
  4. D学習の時には値が決定されず学習とは別にユーザが値を指定する必要があるパラメータ
正解と解説を見る

正解:D学習の時には値が決定されず学習とは別にユーザが値を指定する必要があるパラメータ

ハイパーパラメータは学習の時に値が決定されず、学習とは別にユーザが値を指定する必要があるパラメータです。

この問題の解説ページを開く →

255ハイパーパラメータを最適化する代表的な方法である「グリッドサーチ」の説明として、正しいものはどれですか。

  1. Aハイパーパラメータの候補を指定してそれぞれのハイパーパラメータで学習を行い予測が最も良い値を選択する方法
  2. Bランダムに選んだハイパーパラメータの値を用いて1回だけモデルの学習を行う方法
  3. C主成分分析によって次元削減した後の特徴量を自動的に最適な数に絞り込む方法
  4. Dクラスタリングにおける初期のクラスタ中心を最も離れた位置に配置していく方法
正解と解説を見る

正解:Aハイパーパラメータの候補を指定してそれぞれのハイパーパラメータで学習を行い予測が最も良い値を選択する方法

グリッドサーチは候補を指定してそれぞれのハイパーパラメータで学習を行い、最も良い値を選択する方法です。

この問題の解説ページを開く →

256scikit-learnでグリッドサーチと交差検証を組み合わせてハイパーパラメータの最適化を行うクラスはどれですか。

  1. ADecisionTreeClassifier
  2. Btrain_test_split
  3. CGridSearchCV
  4. Dcross_val_score
正解と解説を見る

正解:CGridSearchCV

GridSearchCVクラスは、グリッドサーチと交差検証を組み合わせた処理を提供します。

この問題の解説ページを開く →

257GridSearchCVによる学習実行後、推定された最適なハイパーパラメータを確認するための属性はどれですか。

  1. Acv_results_
  2. Bbest_params_
  3. Cbest_estimator_
  4. Dparam_grid
正解と解説を見る

正解:Bbest_params_

推定された最適なハイパーパラメータは属性best_params_で確認できます。

この問題の解説ページを開く →

258「クラスタリング」のタスクに関する記述として、最も適切なものはどれですか。

  1. A予測確率の正確さをROC曲線を用いて可視化するモデルの評価タスク
  2. Bデータ間の類似性を計算してデータをグループにまとめる教師なし学習の典型的なタスク
  3. Cデータのカテゴリを正しく当てた割合を最大化する教師あり学習の典型的なタスク
  4. D大量の特徴量から不要なものを削減してデータを圧縮する次元削減の典型的なタスク
正解と解説を見る

正解:Bデータ間の類似性を計算してデータをグループにまとめる教師なし学習の典型的なタスク

クラスタリングとは、ある基準を設定してデータ間の類似性を計算し、データをクラスタにまとめる教師なし学習のタスクです。

この問題の解説ページを開く →

259クラスタリングが「教師なし学習」と呼ばれる理由として、最も適切な記述はどれですか。

  1. Aどのようなクラスタが正解であるかという情報がないため
  2. Bデータを自動で分割するアルゴリズムが一切存在しないため
  3. C学習時にいかなる特徴量データも必要としない手法であるため
  4. D人間による予測結果の評価やチューニングが完全に不要であるため
正解と解説を見る

正解:Aどのようなクラスタが正解であるかという情報がないため

教師なし学習の「教師なし」とは、どのようなクラスタが正解であるかという情報がないことを意味します。

この問題の解説ページを開く →

260k-meansアルゴリズムの手順として、順番が正しいものはどれですか。

  1. Aデータ間のユークリッド距離を計算し最も遠い距離にあるデータ同士を結合しクラスタ数が3になるまで繰り返す
  2. Bハイパーパラメータの候補を指定し交差検証を実行してモデルを評価し最も評価の高い中心を選択する
  3. Cデータにランダムにクラスタラベルを割り当てて中心を計算し最も近いクラスタ中心のクラスタを新たなラベルとし所属データの中心を新たなクラスタ中心とする
  4. Dすべてのデータを1つのクラスタとし順番にクラスタを2つに分割しこれ以上分割できなくなるまで処理を繰り返す
正解と解説を見る

正解:Cデータにランダムにクラスタラベルを割り当てて中心を計算し最も近いクラスタ中心のクラスタを新たなラベルとし所属データの中心を新たなクラスタ中心とする

k-meansは、ランダム初期化から中心計算、最も近い中心への割り当て、新たな中心の計算、を収束まで繰り返します。

この問題の解説ページを開く →

261scikit-learnでk-meansを実行するクラス「KMeans」において、学習と予測を一度にまとめて行うメソッドはどれですか。

  1. Atransform
  2. Bfit_predict
  3. Cfit_transform
  4. Dpredict
正解と解説を見る

正解:Bfit_predict

fit_predictメソッドは、fitメソッドとpredictメソッドを両方実行し、学習と予測を一度にまとめて行います。

この問題の解説ページを開く →

262KMeansクラスの引数「init」で、初期のクラスタ中心が離れた位置に配置されるようにk-means++法を実行するための指定値はどれですか。

  1. A'k-means++'
  2. B'random'
  3. C'complete'
  4. D'euclidean'
正解と解説を見る

正解:A'k-means++'

引数initに'k-means++'を指定すると、k-means++法を実行し、初期のクラスタ中心が離れた位置に配置されます。

この問題の解説ページを開く →

263階層的クラスタリングの「凝集型」アプローチに関する説明として、最も適切なものはどれですか。

  1. Ak-meansによって得られたクラスタ中心をもとに最も近いもの同士を3つのクラスタに分類する
  2. Bデータの平均と標準偏差を用いて正規分布に従うようにグループをマージしていく
  3. C似ているデータをまとめて小さなクラスタを作り最終的にデータが1つのクラスタにまとめられるまで処理を繰り返す
  4. D最初にすべてのデータが1つのクラスタに所属していると考え順次クラスタを分割していく
正解と解説を見る

正解:C似ているデータをまとめて小さなクラスタを作り最終的にデータが1つのクラスタにまとめられるまで処理を繰り返す

凝集型の階層的クラスタリングは、似ているデータをまとめて小さなクラスタを作り、最終的に1つにまとめられるまで繰り返します。

この問題の解説ページを開く →

264凝集型の階層的クラスタリングで用いられる「最長距離法」の説明として、正しいものはどれですか。

  1. A2つのクラスタをまとめる時に各クラスタに属するデータのうち最も近い距離をクラスタ間の距離とする方法
  2. B各データからクラスタ中心までの距離の合計が最大になるようにクラスタを構成する方法
  3. Cデータから最も遠い位置に初期のクラスタ中心をランダムに配置する方法
  4. D2つのクラスタをまとめる時に各クラスタに属するデータのうち最も遠い距離をクラスタ間の距離とする方法
正解と解説を見る

正解:D2つのクラスタをまとめる時に各クラスタに属するデータのうち最も遠い距離をクラスタ間の距離とする方法

最長距離法とは、2つのクラスタをまとめる時に、各クラスタに属するデータのうち最も遠い距離をクラスタ間の距離とする方法です。

この問題の解説ページを開く →

265凝集型の階層的クラスタリングを実行する際、scikit-learnで使用するクラスはどれですか。

  1. AAgglomerativeClustering
  2. BKMeans
  3. CSVC
  4. DGridSearchCV
正解と解説を見る

正解:AAgglomerativeClustering

scikit-learnで凝集型の階層的クラスタリングを実行するには、AgglomerativeClusteringクラスを使用します。

この問題の解説ページを開く →

266階層的クラスタリングの結果をプロットする「樹形図」の別名(カタカナ表記)として正しいものはどれですか。

  1. A混同行列
  2. Bヒストグラム
  3. C散布図
  4. Dデンドログラム
正解と解説を見る

正解:Dデンドログラム

階層的クラスタリングの結果をプロットした樹形図は、デンドログラム(dendrogram)と呼ばれます。

この問題の解説ページを開く →

267樹形図(デンドログラム)の読み取り方について、正しい記述はどれですか。

  1. A縦軸はクラスタ内のデータの平均値を表し値が大きいほどデータ間の距離が近いことを表す
  2. B縦軸が小さい値で結ばれているクラスタは比較的早く結合し大きな値の場合は比較的後に併合されていることを表す
  3. C縦軸が小さい値で結ばれているクラスタは比較的遅く結合し大きな値の場合は非常に早く併合されていることを表す
  4. D横軸のインデックスの数値の大小がそのままデータ同士の結合順序の早さを表す
正解と解説を見る

正解:B縦軸が小さい値で結ばれているクラスタは比較的早く結合し大きな値の場合は比較的後に併合されていることを表す

樹形図は、縦軸が小さい値で結ばれているクラスタが比較的早く結合し、大きな値の場合は比較的後に併合されていることを表します。

この問題の解説ページを開く →
Python3エンジニア認定データ分析試験の全分野一覧へ戻る