Python3 間違えた問題

scikit-learnのDesicionTreeClassifierモジュールを使用する場合に引数として指定できないものを選べ

正解

木の数

木の深さ

葉の数

あなたの答え

不純度の指標

解説

一つの木から枝をはやしていくので木の数は設定できません。

以下は、サポートベクターマシンを使用するためscikit-learnのサポートベクターマシンモジュールを使用する場合のコードである

svm.SVC(kernel='rbf', gamma=0.7, C=0.1)

線形分類問題を解く場合に変更するパラメーターとその変更方法を述べている文章のうち、正しいものを選べ

正解

kernelを”linear”に変更する

kernelを”sigmoid”に変更する

あなたの答え

C を1以上にする

gammaを1以上にする

以下のようなグラフを描画するために、コードのXXX の部分に記述されるコードとして正しいものを選べ

import pandas as pd
import matplotlib.pyplot as plt 

df = pd.DataFrame({"国名":["日本","アメリカ","イタリア","フランス", "ロシア", "ブラジル", "イギリス"],  
"人口/万人":[12700, 32800, 6000, 6700, 14500, 20900, 6600]})

plt.rcParams["font.family"] = "AppleGothic"
XXX
plt.xlabel("人口(万人)")
plt.show()

Image from Gyazo

plt.pie(df["人口/万人"], labels=df["国名"], counterclock=False, startangle=90, autopct="%1.1f%%", pctdistance=0.8) 
①
plt.pie(df["人口/万人"], labels=df["国名"], autopct="%1.2f%%", pctdistance=0.8) 
②
plt.pie(df["人口/万人"], autopct="%1.2f%%", pctdistance=0.8) 
③
plt.pie(df["人口/万人"], labels=df["国名"], counterclock=False, startangle=90, autopct="%1.1f%%", pctdistance=1.2) 
④
正解

以下のような配列AとBは行列の次元は異なるが、A*Bなどの演算を行うことが可能である。このような異なる次元のデータの演算を可能にする機能の名称として正しいものを選べ。

A = np.array([[1, 2],[2, 1]])
B = np.array([6, 8])

ユニバーサルファンクション

正解

ブロードキャスト

ジェネレーター

マジックキャスト

決定木の不純度の指標として使用される「ジニ不純度」の説明している以下の文章の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

以下のような、ユーザーごとのサービス利用状況が格納されたデータフレームdfがある。

サービス利用料金ごとの人数をヒストグラムで表示するためのコードとして正しいものを選べ
Image from Gyazo

import matplotlib.pyplot as plt 

df["利用料金"].hist()
plt.show()
①
import matplotlib.pyplot as plt 

df["利用料金"].boxplot()
plt.show()
②
import matplotlib.pyplot as plt 

df["利用料金"].value_counts().hist()
plt.show()
③
import matplotlib.pyplot as plt 

plt.bar(df["利用回数"], df["ユーザーID"])
plt.show()
④
正解

あなたの答え

解説

dfで指定した列に対してhistメソッドを実行すると指定したデータのヒストグラムを作成します。
さらにdf["利用料金"].hist(by=df["性別"])のようにbyでdfを指定すると指定したdfのサブプロットを作成します。
今回のケースだと性別ごとの利用料金のヒストグラムが作成されます。

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

(10)(1001)

(1001)

あなたの答え

(10)

(10)

正解

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

pickleモジュールの説明として正しいものを選べ

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

正解

オブジェクトをpklファイルとして保存するために使用するモジュールで、構築した予測モデルを保存する場合などに使用される

画像データを扱う場合のモジュールで、ファイルを読み込むことはできるが、オブジェクトを保存することはできない

Pythonオブジェクトをpickle化するには、pickle.save(オブジェクト名)と実行する

以下のようなpandasデータフレームdfがある。日付カラムをこのデータフレームのインデックスにする場合のコードとして正しいものを選べ

Image from Gyazo

df[“日付”].set_index()

あなたの答え

df.reset_index(“日付”)

正解

df.set_index(“日付”)

df.index(“日付”)

データフレームを抜き出す処理

import pandas as pd

df = pd.DataFrame({"国名":["日本","アメリカ","中国","イタリア","フランス", "ロシア", "ブラジル", "イギリス"], 
                   "面積":[380000, 9834000, 959700, 301300, 643800, 17100000, 8516000, 242500],
                  "人口/万人":[12700, 32800, 139300, 6000, 6700, 14500, 20900, 6600]})

上記コードを実行すると、以下のようなデータフレームが作成される。このデータフレームから中国のみのデータフレームを抜き出す処理として正しいものを選べ

Image from Gyazo

df.sort_values(“人口/万人”, ascending=True).iloc[-1,:]

あなたの答え

df[df[“国名”]!=”中国”]

正解

df[df.index==2]

df[“国名”]==”中国”

欠損値の対処方法として、間違っているものを選べ

正解

One-hotエンコーディングを行う

その特徴量の統計的な代表値などで埋める

あなたの答え

欠損値があるデータを用いない

欠損がある場合でも動作する機械学習アルゴリズムを選定する

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

A = [1]*10
A
正解

[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

[10]

あなたの答え

[[1],[1],[1],[1],[1],[1],[1],[1],[1],[1]]

[[10],[10],[10],[10],[10],[10],[10],[10],[10],[10]]

matplotlibについて説明している以下の文章のうち、間違っているものを選べ

正解

plotメソッドではedgecolor引数を指定することで、グラフの枠線の色を指定することができる

color引数では、文字列の他に、HTMLやCSS3で定義された色名を指定することができる

散布図で指定することができるマーカーの種類は30種以上ある

plot()メソッドでは線の太さを変更することはできない

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

import numpy as np

A = np.eye(4)
first, second = np.hsplit(A, [2])
first
正解

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

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

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

あなたの答え

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

解説

NumPyのメソッドの問題です。4行4列の単位行列を作成したあと、hsplitで0列~1列目までをfirstに入れます。4行2列のデータになり、選択肢が正解になります。

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

import numpy as np

A = np.array([[0, 1, 2, 3, 4]])
B = np.full((1, 5), 1)
A[A>=B]
正解

array([1, 2, 3, 4])

array([False, True, True, True, True])

あなたの答え

array([[1, 2, 3, 4]])

array([[False, True, True, True, True]])

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

import numpy as np

A = np.linspace(0, 2, 5)
B = np.diff(A)*2
B == np.ones(4)

True

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

正解

array([ True, True, True, True])

FALSE

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

(1001)(1101)

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

(1001)

あなたの答え

(1111)

正解

scikit-learnで実装されているk-means法について説明している以下の文章のうち間違っているものを選べ

正解

クラスターの重心位置の更新計算は、指定した回数分だけ行われる

教師なし学習であるため、教師ラベルは必要ない

initの引数に”random”を指定すると、最初のクラスター点をデータの中からランダムに選ぶため、初期値依存性がある

クラスターの個数は、使用者が指定する必要がある

以下のpandasデータフレームdfのDateカラムはオブジェクト型である。このDateカラムをdatetime型に変換するコードとして正しいものを以下の中から選べ

Image from Gyazo

df[“Date”] = pd.datetime(df[“Date”])

正解

df[“Date”] = pd.to_datetime(df[“Date”])

df[“Date”] = pd.to_date(df[“Date”])

df[“Date”] = df[“Date”].astype(datetime)

A+Bが計算できない組み合わせとして、正しいものを以下の中から選べ。

A = np.array([[0,1,2]]) B = np.ones((3,1))

正解

A = np.array([[0,1,2]]) B = np.ones((3,2))

A = np.array([[0,1,2]]) B = np.ones((1,3))

A = np.array([[0,1,2]]) B = np.ones((2,3))

以下は、サポートベクターマシンを使用するためscikit-learnのサポートベクターマシンモジュールを使用する場合のコードである

svm.SVC(kernel='rbf', gamma=0.7, C=0.1)

線形分類問題を解く場合に変更するパラメーターとその変更方法を述べている文章のうち、正しいものを選べ

正解

kernelを”linear”に変更する

kernelを”sigmoid”に変更する

あなたの答え

C を1以上にする

gammaを1以上にする

以下の文章のうち次元削減手法として適切でないものを選べ

正解

k-means法

主成分分析(PCA)

線形判別分析(LDA)

あなたの答え

t-SNE

scikit-learnで学習した決定木を可視化する際に使用するライブラリとして正しいものを以下の中から選べ

正解

pydotplus

seaborn

あなたの答え

gnuplot

ggplot

解説

pydotplusモジュールのgraph_from_dot_data関数にscikit-learnで得た学習結果をセットするとこで可視化するために必要なグラフのオブジェクトが作成できます。
そのオブジェクトを画像や可視化ツールで表示します。

以下のような、ユーザーごとのサービス利用状況が格納されたデータフレームdfがある。
利用回数の箱ひげ図を描画するコードとして正しいものを選べ

Image from Gyazo

import matplotlib.pyplot as plt 

plt.boxplot(df["利用回数"])
plt.show()
①
import matplotlib.pyplot as plt 

plt.hist(df["利用回数"])
plt.show()
②
import matplotlib.pyplot as plt 

plt.violinplot(df["利用回数"])
plt.show()
③
import matplotlib.pyplot as plt 

df["利用回数"].boxplot()
plt.show()
④
正解

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

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.]])

カテゴリカル型やオブジェクト型のデータが格納されたpandasデータフレームに対して、describeメソッドを用いて算出することができない統計量として正しいものを選べ

ユニーク数

あなたの答え

データ数

最頻(もっとも多く出現するデータ)のレコード数

正解

最大文字数

解説

describeメソッドは各列ごとに平均、標準偏差、最大値、最小値、最頻値などの要約統計量を取得できます。データの概要を知る時に便利です。

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

import numpy as np

A = np.array([[1,2,3],[4,5,6]])
B = A[0,:]
A[0,:]=0
B

array([1, 2, 3])

あなたの答え
正解

array([0, 0, 0])

array([[1], [4]])

array([[0], [0]])

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=[カラム名])

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

1xdx

正解

logx+c

1x+c

1x2+c

ex+c

あなたの答え

解説

分数の積分問題です。これは反対を考えると対数を微分すると真数を分母とした分数になることを知っていれば解けます。
対数の見方は次のイメージです。

23=8

:2の3乗は8になる。2を底、8を真数、3を指数と呼びます。

log28=3

:2の3乗は8になる。2を底、8を真数、3を対数と呼びます。

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

import numpy as np

a = np.array([[0,1,10],[0,1,10]])
b = a.copy()
a2 = a.reshape(3,2)
b*a2

array([[ 20, 100], [ 20, 100]])

array([[ 0, 1, 10], [ 0, 10, 100], [ 0, 11, 110]])

あなたの答え
正解

エラーになり、計算は実行できない

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

以下のような日付、日経平均の株価の始値、終値が格納されたpandasデータフレームdfがある。このデータフレームのカラムの型を確認するためのメソッドとして正しいものを選べ

Image from Gyazo

df.dtype

あなたの答え
正解

df.dtypes

df.columns

type(df)

dfと名付けられている、以下のようなデータフレームがある。このデータフレームから、人口/万人カラムを削除する場合のコードとして正しいものを選べ

Image from Gyazo

正解

df.drop(“人口/万人”, axis=1)

df.drop(“人口/万人”, axis=0)

あなたの答え

df.drop[“人口/万人”]

df[“人口/万人”].drop()

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

import pandas as pd

df = pd.DataFrame({"A":[1,2,3,4,5], "B":[6,7,8,9,10]})
df.iloc[1]>3
A    False
B     True

①
0     True 
1     True
2     True
3     True
4     True

②
A    False

③
0    False
1    False
2    False
3     True
4     True

④
正解

あなたの答え

解説

pandasのilocメソッドの問題です。ilocは行と列を数値で指定出来ます。df.iloc[1]は1次元目の1行目にアクセスします。
Image from Gyazo

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

import numpy as np

A = np.array([[1,2,3],[4,5,6]])
B = A.flatten()
A[1,:]=0
B[-1]

array([0, 0, 0])

正解

6

array([6])

あなたの答え

array([4, 5, 6])

解説

浅いコピーと深いコピーの問題です。この問題では深いコピーである flattenメソッドを使用しているのでAの変更はBに影響しません。

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()

解説

reモジュールのgroupメソッドの問題です。groupメソッドはマッチした文字列を取得します。

シェアする

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

フォローする