Python3エンジニア認定データ分析試験 模試

問番号
問番号
問番号
問番号

問1

reモジュールについて説明している以下の文章のうち、正しいものを選べ

デバッグ機能を利用するためのモジュールである

機械学習アルゴリズムを用いたモデルを構築する際に使用するモジュールである

微分や積分などの高度な数式演算を行うためのモジュールである

正解

正規表現を扱うためのモジュールである

あなたの答え

問2

ポアソン分布について述べている以下の文章のうち、正しいものを選べ

ポアソン分布におけるパラメーターは、平均値と標準偏差である。

正解

交通事故の発生回数の予測、機械部品の故障予測など、稀に生じる事象についてモデル化したい場合に用いられる、離散型の確率分布である。

あなたの答え

二項分布における試行回数と平均値が∞に発散する場合の極限を計算することで、ポアソン分布の確率密度関数は得られる

確率変数の実現値が連続変数である連続型確率分布である。

問3

決定木の不純度の指標として使用される「ジニ不純度」の説明している以下の文章のXXXとYYYに当てはまる組みとして正しいものを選べ

ある2つのカテゴリー(ラベル0とラベル1)を持つ特徴量を分割する場合のジニ不純度は、ラベル0なのにラベル1と割り振られる確率とラベル1なのにラベル0と割り振られる確率のXXXを考える必要がある。クラス0である確率をP(0)、クラス1である確率をP(1)とすると、求めるジニ不純度は

1(P(0)YYY+P(1)YYY)

 となる

正解

XXX = 和, YYY = 2

XXX = 積, YYY = 2

あなたの答え

XXX = 積, YYY = 1/2

XXX = 和, YYY = 1/2

解説

ジニ不純度を求める考え方は説明文の通りです。適切な単語については公式の観点で説明をします。ジニ不純度を求める公式は下記のようになります。

I(t)=1i=1KP2(Ci|t)=1i=1K(Nt,iNt,all)2


「ラベル0なのにラベル1と割り振られる確率とラベル1なのにラベル0と割り振られる確率」とはつまり間違える確率です。発生する確率の反対が間違える確率ですので1から発生する確率を減算しています。2乗は式変換すると発生するものとなります。

フィードバックを送信

問4

シグモイド関数について説明している以下の文章のうち、正しいものを選べ

正解

ニューラルネットワークの活性化関数として使われる関数であり、この関数の出力は0より大きく1より小さい

ニューラルネットワークの活性化関数として使われる関数であり、入力に対して線形変換を施す

線形回帰を使用する際の仮定関数であり、これにより誤差が小さくなるように学習することができる

以下の数式で表される関数であり、この関数の出力は0以上1以下である 

f(x)=ex1+ex

あなたの答え

問5

Matplotlibの記述について間違っているものを選べ

正解

1つの描画オブジェクトの中に、複数のグラフを表示させることはできない

あなたの答え

グラフの判例を描画するだけでなく、その表示位置やフォント、文字サイズも変更することができる。

描画したグラフをpngファイルなどで保存することができる。

Matplotlibのコードには2種類あり、MATLABのように書くスタイルとオブジェクト指向に則ったスタイルがあるM

問6

以下のコードのXXXXの部分に当てはまるものとして正しいものを選べ

try:
    with open('sample.txt', encoding='utf-8') as f:
        txt = f.read()
        f.close()
        print(txt)

XXXX FileNotFoundError as err:
    print("ファイルが存在しないため、読み込めませんでした。")
    
XXXX Exception as other:
    print("ファイルが読み込めませんでした。")

exception

exceptional

正解

except

あなたの答え

reject

問7

A = (1,2,3) B = (4,5,6)の2つの座標がある。座標AB間のユークリッド距離として正しいものを選べ

正解

27

あなたの答え

27

9

3

問8

ブートストラップデータの説明として正しいものを以下の中から選べ

正解

ランダムに復元抽出されたサンプルと特徴量のデータのこと

勾配ブースティング法の内部で保持している、誤差がもっとも大きかったサンプルのこと

予測への影響度がもっとも少ないサンプルのこと

サンプルからランダムに非復元抽出したデータのこと

あなたの答え

問9

以下の不定積分の答えとして正しいものを選べ。Cは積分定数とする。

1xdx

正解

logx+c

1x+c

1x2+c

ex+c

あなたの答え

問10

以下のような日付、日経平均株価の始値、終値が格納されたpandasデータフレームdfがある。このデータフレームにその日の株価の増減値(終値-始値)に応じて、ランクを付与するコードの実装として正しいものを選べ

Image from Gyazo

def add_rank(value):
    if value >= 1000:
        return "High"
    elif 0 <= value < 1000:
        return "Normal"
    else:
        return "Low"
    
df["増減値"] = df["終値"] - df["始値"]
df["ランク"] = df["増減値"].apply(add_rank)

def add_rank(value):
    if value >= 1000:
        return "High"
    elif 0 <= value < 1000:
        return "Normal"
    else:
        return "Low"
    
df["増減値"] = df["終値"] - df["始値"]
df["ランク"] = df.add_rank(df["増減値"])

def add_rank(value):
    if value >= 1000:
        return "High"
    elif 0 <= value < 1000:
        return "Normal"
    else:
        return "Low"
    
df["ランク"] = df.apply(add_rank(df["終値"] - df["始値"]))

def add_rank(value):
    if value >= 1000:
        return "High"
    elif 0 <= value < 1000:
        return "Normal"
    else:
        return "Low"
    
df["ランク"] = df.apply().add_rank(df["終値"] - df["始値"])
正解

あなたの答え

問11

datetimeモジュールについて説明している以下の文章のうち、誤っているものを選べ

正解

取得する日付や日時のタイムゾーンを指定することができる

あなたの答え

now()を使用することで、今日の日付を取得することができる

日数の差分を算出するなど、日付同士の演算をすることができない。

日時(datatime型)→文字列の変換はできるが、文字列→日時(datatime型)の変換はできない

問12

以下のコードの出力として正しいものを選べ

A = [x for x in range(10)]
B = {x for x in range(20)}

if len(A)==10:
    print("A")
elif len(A)==10&len(B)==20:
    print("A,B")
else:
    print("None")
正解

A

あなたの答え

A, B

None

A A, B

問13

データエンジニアの役割について説明している以下の文章のうち、正しいものを選べ

データエンジニアはモデリングのみを担当することが多く、データの概要把握のためのデータ集計やデータ可視化を行うことはない。

データエンジニアが使用するツールはwindowsOSでしか動作しないものが多く、windowsOSを使わなければならない

正解

データエンジニアはデータサイエンティストと連携して、予測モデルを構築するためのデータの前処理や抽出作業を行うことがある

あなたの答え

データエンジニアはモデリングのみを担当することが多く、データの前処理を行うことはない

問14

以下のコードを実行した場合のBとCに格納されているデータの組み合わせとして、正しいものを選べ。選択肢は(B, C)の順に記載されている。

import numpy as np

A = np.eye(3)
B = np.count_nonzero(A)
C = np.sum(A)

(array([3]), array([3]))

正解

(3, 3)

あなたの答え

(True, 6)

(True, 3)

問15

pandasデータフレームdfをNumPy配列に変換する処理として正しいものを選べ

np.convert(df)

正解

df.values

np.ndarray(df)

あなたの答え

df.array

問16

scikit-learnのmetricsモジュールのclassification_report関数で出力されないものとして正しいものを選べ

正解

AUC

あなたの答え

適合率

再現率

F値

問17

matplotlibのhist()メソッドの引数に関する説明として間違っているものを選べ

正解

最適なビンの数を決める手法を指定することができる

あなたの答え

ビンの数を変更することができる

積み上げヒストグラムを描画することができる

相対度数分布を表示することができる

問18

以下のコードを実行した場合の出力として、正しいものを選べ。

import numpy as np

np.log(np.exp(np.eye(2)))

array([[ 0., -inf], [-inf, 0.]])

array([[2.71828183, 1. ], [1. , 2.71828183]])

あなたの答え
正解

array([[1., 0.], [0., 1.]])

array([[1., 1.], [1., 1.]])

問19

数値データが格納されたpandasデータフレームに対して、describeメソッドを用いて算出することができない統計量として正しいものを選べ

最大値

正解

外れ値

あなたの答え

平均値

データ件数

問20

以下のような出力をするコードとして正しいものを選べ

DatetimeIndex(['2020-01-01', '2020-01-02', '2020-01-03', '2020-01-04',
               '2020-01-05', '2020-01-06', '2020-01-07', '2020-01-08',
               '2020-01-09', '2020-01-10', '2020-01-11', '2020-01-12',
               '2020-01-13', '2020-01-14', '2020-01-15', '2020-01-16',
               '2020-01-17', '2020-01-18', '2020-01-19', '2020-01-20',
               '2020-01-21', '2020-01-22', '2020-01-23', '2020-01-24',
               '2020-01-25', '2020-01-26', '2020-01-27', '2020-01-28',
               '2020-01-29', '2020-01-30', '2020-01-31'],
              dtype='datetime64[ns]', freq='D')

pd.date(start=”2020-01-01”, end=”2020-1-31”)

正解

pd.date_range(start=”2020-01-01”, end=”2020-1-31”)

あなたの答え

pd.date_range([“2020-01-01”, “2020-1-31”])

pd.range(start=”2020-01-01”, end=”2020-1-31”)

問21

Matplotlibを用いて、1つの描画オブジェクト中に2つのグラフを表示するコードとして正しいものを選べ


import matplotlib.pyplot as plt

fig, ax = plt.subplots(2)
plt.show()
①

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
plt.show()
②

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
plt.show()
③

import matplotlib.pyplot as plt

plt.plot()
plt.show()
④
正解

あなたの答え

問22

サポートベクターマシンについて説明している以下の文章のうち正しいものを選べ

分類問題にのみ使えるアルゴリズムである

正解

カーネルをrbfカーネルなどにすることで非線形構造を有するデータに対しても使用することができる

あなたの答え

scikit-learnで実装されているサポートベクトルマシンを使う場合、サポートベクトルの数はハイパーパラメーターであり、任意に調整できる

教師なし学習のアルゴリズムである

問23

csvファイルをpandasで読み込む場合に、読み込むカラムを指定する方法として正しいものを選べ
※選択肢中の’data.csv’ は読み込む元データが格納されたcsvファイルとする

正解

pd.read_csv(‘data.csv’, usecols=[カラム名])

pd.read_csv(‘data.csv’, index_col=[カラム名])

pd.read_csv(‘data.csv’, use_cols=[カラム名])

あなたの答え

pd.read_csv(‘data.csv’, cols=[カラム名])

問24

Jupyter Notebookについて説明している以下の文章のうち、正しいものを選べ

単一行でセルを実行できることもあり、セル内で関数を作成することは良くない

正解

単一のコードを実行できることもあり、後から見直した時のために、セルとセルの間には適度に、コメントを残すべきである

あなたの答え

ノートブックが複数に別れていると面倒なので、ノートブックは長くても1つに納める方が良い

使っていないノートブックは自動でシャットダウンされるので、いくつでもノートブックを開くことは問題ない

問25

ファイルの入出力の際に使用する、open関数について説明している以下の文章のうち、間違っているものを選べ

ファイルの入出力の際に使用する文字列のエンコーディングを指定できる

正解

open関数が扱えるファイルの拡張子は、txtのみである

あなたの答え

open関数を用いる際には、ファイルの閉じ忘れを防ぐために、with文を併用するとよい

書き込み用でファイルを開く場合には、modeの引数に’w’を指定するとよい

問26

enjoyという出力を返すように、XXXXに当てはまるものとして正しいものを選べ

import re

pattern = r"enjoy"
text = "enjoy data science"
matchOB = re.match(pattern , text)
if matchOB:
    print(matchOB.XXXX)

output()

正解

group()

match()

あなたの答え

search()

問27

scikit-learnのLogisticRegressionクラスを用いてモデルを構築した場合のラベルの予測確率を取得する関数として正しいものを以下の中から選べ

正解

predict_proba()

あなたの答え

predict()

get_params()

predict_log_proba()

問28

set型のデータに関して説明している以下の文章のうち、正しいものを選べ

標準のデータ型にはなく、使う場合はモジュールをインポートする必要がある

正解

重複しない要素を含み、集合演算をする場合に用いられる

あなたの答え

イミュータブルなデータ型であり、要素の追加や削除はできない

データの各要素が、keyとvalueという2組みのデータから成り立ち、それぞれ取り出すことができる

問29

A = (1,2,3) B = (4,5,6)の2つの座標がある。座標AB間のマンハッタン距離として正しいものを選べ

正解

9

あなたの答え

3

27

27

問30

以下の行列の掛け算の答えとして正しいものを選べ

(1001)(1101)

算出不可能(掛け算はできない)

(1001)

あなたの答え

(1111)

正解

(1101)

問31

機械学習モデルについて説明している以下の文章のうち間違っているものを選べ

正解

機械学習モデルでは、何かを分類するタスクしか解くことができない

あなたの答え

ラベルではなく数値そのものを予測する問題を回帰問題という

データが大量に存在する場合にモデルを構築する際は、学習データ、検証データ、テストデータの3つに分割するのが理想である

異なる検証データで結果を比較するために、交差検証を実施することもある

問32

以下の行列の掛け算の答えとして正しいものを選べ

(22)(22)

(4444)

正解

(8)

(44)

あなたの答え

算出不可能(掛け算はできない)

問33

以下のような日付、日経平均株価の始値、終値が格納されたpandasデータフレームdfがある。このデータフレームを始値の降順に並び替えるコードとして正しいものを選べ

Image from Gyazo

df.sort(“始値”, ascending=False)

df.sort(“始値”)

df.sort_values(“始値”)

正解

df.sort_values(“始値”, ascending=False)

あなたの答え

問34

scikit-learnのサポートベクターマシンのハイパーパラメーターのCについて説明している以下の文章のうち正しいものを選べ

正解

Cの値が小さいほど、マージンは大きくなる

Cの値が大きいほど、マージンは大きくなる

あなたの答え

C=Trueにすると、非線形の分類問題も境界線を求めることができるようになる

特徴量の数が大きいほど、Cの値も大きくする必要がある

問35

三角関数でないものを以下の選択肢から選べ

cosx

正解

sinhx

あなたの答え

tanx

sinx

問36

pandasのデータフレームの上から5行目までを表示させるメソッドとして、正しいものを選べ。

tail()

正解

head()

あなたの答え

view()

show()

問37

以下のような、pandasデータフレームAとpandasデータフレームBがある。この2つのデータフレームの日付が一致する部分のみを列方向に結合したデータフレームを作成するコードとして正しいものを選べ
A
Image from Gyazo

B
Image from Gyazo

pd.merge(A, B, how=”left”, on=”日付”)

pd.join(A, B, how=”inner”, on=”日付”)

正解

pd.merge(A, B, how=”inner”, on=”日付”)

あなたの答え

pd.merge([A, B], how=”inner”, on=”日付”)

問38

決定木について説明している以下の文章のうち、正しいものを選べ

正解

情報利得の大きい順に特徴量が使用され、木が作られる

あなたの答え

木が下に行けば行くほど、特徴量の情報利得は大きい

各葉においてデータを分割する際の閾値はあらかじめモデル作成者が決める必要がある

欠損値は除外するか、何かしらの値で埋めておく必要がある

問39

Jupyter Notebookについて説明している以下の文章のうち、正しいものを選べ

セル上で、シェルコマンドを実行する際には’#’を行頭に入力する

正解

セル上で、シェルコマンドを実行する際には’!’を行頭に入力する

あなたの答え

セル上で、シェルコマンドを実行する際には’%’を行頭に入力する

セル上で、シェルコマンドを実行する際には’’を行頭に入力する

問40

以下のような日付ごとの利用回数と利用料金が格納されたpandasデータフレームdfがある。各利用回数が何日存在するかをカウントしたものをデータフレームとして出力するコードとして正しいものを選べ
Image from Gyazo

df[“利用回数”].value_counts()

正解

df[“利用回数”].value_counts().to_frame()

df[“利用回数”].value_count().to_frame()

あなたの答え

df[“利用回数”].count()

シェアする

  • このエントリーをはてなブックマークに追加

フォローする