第2回 Python 3 データ分析

・負のインデックス値
・eye関数
・full関数、linspace関数、hstack関数
・ravel()
・NumPy 「ユニバーサルファンクション、ブロードキャスト」
・「ndarrayオブジェクトのドット積」@演算子、 np.dot(c, a)
・「pandas」「欠損値処理(fillnaメソッド、dropnaメソッド)」
・「Matplotlib」「積み上げ棒グラフの出力方法(barメソッド)」
・tick_label=labels, label=’y1′
・legend()
・「scikit-learn」クラスタリング、階層的クラスタリング(凝集型・分割型)、非階層的クラスタリング k-means


1.

機械学習に関する次の記述のうち、正しいものはどれか。


あなたの回答: 教師なし学習の1つであるDBSCAN法は密度準拠クラスタリングアルゴリズムであり、特徴量ベクトル間の距離に着眼した手法である。
正答: 教師なし学習の1つであるDBSCAN法は密度準拠クラスタリングアルゴリズムであり、特徴量ベクトル間の距離に着眼した手法である。

 

 

2.

データ分析に関する次の記述のうち、正しいものはどれか。


あなたの回答: Pythonでデータ分析に使われる主なパッケージには、Jupyter Notebook、NumPy、pandas、Matplotlib、Scipy、scikit-learnなどがある。
正答: Pythonでデータ分析に使われる主なパッケージには、Jupyter Notebook、NumPy、pandas、Matplotlib、Scipy、scikit-learnなどがある。

 

 

3.

PythonおよびPythonの実行環境に関する次の記述のうち、正しいものはどれか。


あなたの回答: pipコマンドは、The Python Package Index に公開されているPythonパッケージのインストールなどを行うユーティリティである。パッケージをインストールするにはpip installコマンドを使用する。
正答: pipコマンドは、The Python Package Index に公開されているPythonパッケージのインストールなどを行うユーティリティである。パッケージをインストールするにはpip installコマンドを使用する。

 

 

4.

次のスクリプトの2行目以降を代替できるリスト内包表記として正しいものはどれか。

colors = [‘red’, ‘blue’, ‘yellow’]

lens =[]

for color in colors:

lens.append(len(color))

lens


あなたの回答: [len(color) for color in colors]
正答: [len(color) for color in colors]

 

 

5.

次の正規表現を用いたスクリプトの[ ア ]の部分に入れたときエラーとなるものはどれか。

import re
prog = re.compile(‘Kus(a|u)n(a|o)(k|g)i(saya)?’, re.IGNORECASE)

[ ア ]

print(ret[0])


あなたの回答: ret = prog.search(‘Kusanoao’)
正答: ret = prog.search(‘Kusanoao’)

 

 

6.

モジュールに関する次の記述のうち誤っているものはどれか。


あなたの回答: loggingモジュールのログレベルには、重要度の高い順にCRITICAL、ERROR、WARNING、DEBUG、INFOの5種類がある。
正答: loggingモジュールのログレベルには、重要度の高い順にCRITICAL、ERROR、WARNING、DEBUG、INFOの5種類がある。

 

 

7.

Jupyter Notebookに関する次の記述のうち正しいものはどれか。

あなたの回答: Jupyter Notebookはオープンソースで開発されているデータ分析、可視化、機械学習などに広く利用されるWebアプリケーションである。
正答: Jupyter Notebookはオープンソースで開発されているデータ分析、可視化、機械学習などに広く利用されるWebアプリケーションである。

 

 

8.

数学の基礎に関する次の記述のうち誤っているものはどれか。

あなたの回答: ネイピア数とは数学定数の一つで、常用対数の底であり、通常「e」の記号で表現される。対数関数で底が省略された場合には、「e」なのか「10」なのかは注意が必要である。
正答: ネイピア数とは数学定数の一つで、常用対数の底であり、通常「e」の記号で表現される。対数関数で底が省略された場合には、「e」なのか「10」なのかは注意が必要である。


ネイピア数は自然対数
https://atarimae.biz/archives/12731
ネイピア数 

e2.718

を底とする対数 

logex

のことを自然対数と言います。

 

9.

(3, 4) で表現されるベクトルをAとする。(4, 7)で表現されるベクトルをBとする。(2, 4, 5) で表現されるベクトルをCとする。次のベクトルに関する記述のうち正しいものはどれか。

あなたの回答: Bの原点からのマンハッタン距離は11である。
正答: Bの原点からのマンハッタン距離は11である。


Bベクトルの原点からのマンハッタン距離は、原点から座標軸に沿って終点に至るまでの距離です。
https://study.prime-strategy.co.jp/coverage/py3an1-09/

 

10.

行列に関する次の記述のうち誤っているものはどれか。

あなたの回答: 行列の分解の理論「m×sの行列にs×nの行列を賭けると、m×nの行列になる」を逆に考えると、データ分析や機械学習において、説明変数の次元数を削減することができる。
正答: 行列同士の掛け算は行列となる。数値の掛け算は順番を入れ替えても同じ結果となるが、行列の掛け算は順番を入れ替えると同じ結果になることはない。行列の掛け算は順番を入れ替えると、原則として同じ結果にはなりません。
https://study.prime-strategy.co.jp/coverage/py3an1-10/

 

11.

微分積分に関する以下の記述のうち誤っているものはどれか。

あなたの回答: 関数 F(x)を微分して f(x)となったとき、F を f の原始関数、f を F の導関数と呼ぶ。
正答: 右辺が5x^2(5掛けるxの2乗)で表現される関数 f(x)を積分すると、右辺は15x^3+C(Cは積分定数)となる。


参考 https://study.prime-strategy.co.jp/coverage/py3an1-11/
元の関数f(x)=6x^2を公式に当てはめて積分すると、結果は2x^3+C(Cは積分定数)となります。

 

12.

確率と統計に関する次の記述のうち、正しいものはどれか。

あなたの回答: 6面体のサイコロを1回振った場合、その出目の数自体は不明なものの、奇数がでていることを教えられたとする。この場合の確率を条件付き確率と呼び、これはベイズの定理の基本となっている。
正答: 6面体のサイコロを1回振った場合、その出目の数自体は不明なものの、奇数がでていることを教えられたとする。この場合の確率を条件付き確率と呼び、これはベイズの定理の基本となっている。

 

 

13.

「1の対数、ネイピア数、sin(30°)、円周率、0の階乗」の5つの数からなるデータがある。このデータについて正しいものはどれか。

あなたの回答: 算術平均は中央値より小さい
正答: 0の階乗は1の対数より大きい


・1の対数=0
1の対数に関しては、数字の0乗は1になる
・sin(30°)=1/2
・0の階乗=1
1の階乗が1になるということに関しては、0の階乗も1となる
参考:https://study.prime-strategy.co.jp/coverage/py3an1-13/

 

14.

NumPyに関する次の記述のうち、誤っているものはどれか。

あなたの回答: 2次元のNumPy配列を1次元に変換するにはravelメソッドまたはflattenメソッドを用いることができる。ravelメソッドは参照を返し、flattenメソッドはコピーを返す。
正答: NumPyは配列や行列を効率よく扱うためのPythonのサードパーティ製パッケージで、行列用の型であるndarrayと配列用の型であるmatrixがある。

→NumPyの配列用の型がndarray、行列用の型がmatrixです。
https://study.prime-strategy.co.jp/coverage/py3an1-14/

 

15.

次のスクリプトを実行した結果として正しいものはどれか。

import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([7,8,9])
print(a[-1:, [1,2]], b.shape)

あなたの回答: [[5 6]] (3,)
正答: [[5 6]] (3,)

参考:https://study.prime-strategy.co.jp/coverage/py3an1-15/
a[-1:, [1, 2]] の部分は、(2次元配列の)行が、負のインデックス値で指定されています。

ですから右のように、-1からそれ以降、つまり4,5,6の部分(青)がそれに該当します。

列についてはインデックス値1と2(赤)で指定されています。

これら(青と赤)の交わった5と6がprint関数で出力されています。

shape属性で、配列の形状、つまり各次元の大きさを確認します。

 

16.

次のスクリプトを実行した結果として正しいものはどれか。

import numpy as np
a = np.arange(1, 10, 2)
b = np.eye(6)
print(a[-1], b[3, 3])

あなたの回答: 9 1.0
正答: 9 1.0


参考:https://study.prime-strategy.co.jp/coverage/py3an1-16/
arange関数で数列を作り変数aに格納します。
eye関数で単位行列を作り変数bに格納します。

 

17.

次のスクリプトを実行した結果として正しいものはどれか。

import numpy as np
a = np.full((2, 3), np.pi).T.ravel()
b = np.linspace(0, 1, 5)
c = np.hstack([a, b])
print(a[-1], c[-2])

あなたの回答: 3.141592653589793 0.75
正答: 3.141592653589793 0.75


参考:https://study.prime-strategy.co.jp/coverage/py3an1-17/
numpy.full関数は、全ての要素が同じ任意の値の初期化配列を作成する関数です。
https://www.headboost.jp/numpy-full/

これに対してT属性で転置がなされ、

さらにこれに対しravelメソッドが使われ1次元配列になります。

以上を変数aに格納します。

https://techacademy.jp/magazine/18935
linspace関数で、0から1までを等間隔に区切った5つの要素の配列を作り変数bに格納します。配列aとbをhstack関数で連結し、変数cに格納します。

 

18.

次のスクリプトを実行した結果として正しいものはどれか。

import numpy as np
a = np.array([0, 9, 99, 999])
a = a + 1
a = a * 10
b = np.log10(a)
print(a[2], b[1])

あなたの回答: 1000 2.0
正答: 1000 2.0

https://study.prime-strategy.co.jp/coverage/py3an1-18/
配列の内部データに直接演算を行うNumpyの機能をブロードキャストといいます。
Numpy配列の要素内のデータを一括変換する関数を、ユニバーサルファンクションといいます。

 

19.

次のスクリプトを実行した結果として正しいものはどれか。

import numpy as np
a = np.array([1, 4])
b = np.array([-1, 6])
c = np.array([[1, 2], [3, 4]])
d = a @ b
e = np.dot(c, a)
print(d, e)

あなたの回答: 24 [ 11 21 ]
正答: 23 [ 9 19 ]

参考:https://study.prime-strategy.co.jp/coverage/py3an1-19/

@演算子でaとbのドット積を求め、その値を変数dに格納します。

同様に、ドット関数でcとaのドット積を求め、eに格納します。

 

20.

次のスクリプトを実行して20を出力させたい。[ア]に入るものの説明として正しいものはどれか。

import pandas as pd
df = pd.DataFrame([[15, “a”, True],[20, “b”, False],[10, “c”, False]])
df.index = [“01”, “02”, “03”]
df.columns = [“A”, “B”, “C”]
[ア]
print(a)

あなたの回答: a = df.loc[“02”, “A”] または a = df.iloc[1, 0]
正答: a = df.loc[“02”, “A”] または a = df.iloc[1, 0]

 

 

21.

pandasのデータの読み込みと書き込みに関する次の記述のうち誤っているものはどれか。

あなたの回答: read_htmlメソッドを使うと、WebサイトのHTML内のtable要素を、直接DataFrameに取り込むことができる。table要素が複数ある場合には、最初の要素のみが取得される。
正答: read_htmlメソッドを使うと、WebサイトのHTML内のtable要素を、直接DataFrameに取り込むことができる。table要素が複数ある場合には、最初の要素のみが取得される。
複数のテーブルがある場合、1つ目のテーブルは[0]、2つ目のテーブルは[1]で確認することができます。https://ai-inter1.com/python-pandas_scraping/
それではWEBページから取得したテーブルの情報を表示してみましょう。結果はリストの形式で取得されます。例えば、読み込み対象のWEBページに複数のテーブルがある場合、1つ目のテーブルは[0]、2つ目のテーブルは[1]で確認することができます。

 

22.

次のスクリプトを実行した結果として正しいものはどれか。

import pandas as pd
df = pd.DataFrame([[40, “a”, True],[20, “b”, False],[30, “c”, False]])
df.index = [“01”, “02”, “03”]
df.columns = [“A”, “B”, “C”]

def judge(arg):
if arg < 50:
return “low”
elif arg < 70:
return “middle”
else:
return “high”

df.loc[:, “C”] = df.iloc[:, 0] * 2
df.loc[:, “B”] = df.iloc[:, 2].apply(judge)
_ = df[“C”] > 50
df = df[_]

print(df.iloc[0 , 2], df.loc[“03″ ,”B”])

あなたの回答: 30 middle
正答: 80 middle

参考:https://study.prime-strategy.co.jp/coverage/py3an1-22/

 

23.

次のスクリプトに関する説明のうち誤っているものはどれか。

import numpy as np
import pandas as pd
np.random.seed(123)
dates = pd.date_range(start=”2017-04-01″, periods=365)
df = pd.DataFrame(np.random.randint(1, 31, 365), index=dates, columns=[“rand”])
df_year = pd.DataFrame(df.groupby(pd.Grouper(freq=’W-SAT’)).sum(), columns=[“rand”] )

あなたの回答: 3行目でシード値「123」を「321」に入れ替えると、「123」のときとは異なる値が出力されるものの、複数回スクリプトを実行しても結果は同じとなる。
正答: 5行目は、日付をインデックスとするDataFrameを作成している。dfを出力するとrand列の各値は、1から31までのランダムな整数となる。

random.randintに渡された引数をみると、生成する整数の範囲の最小値は1、最大値は「31の一つ手前」、つまり「30」までという指定がされていることがわかります(配列の形状は365行ということで特に問題ありません)。

そのため選択肢の文章中「1から31までの」の部分が誤りであることを確認できます。
https://study.prime-strategy.co.jp/coverage/py3an1-23/

 

24.

DataFrameの欠損値の処理に関する次の記述のうち、誤っているものはどれか。

あなたの回答: mode().iloc[1.:]の結果をfillnaメソッドに引数として渡すと、欠損値を最頻値で補完できる。
正答: mode().iloc[1.:]の結果をfillnaメソッドに引数として渡すと、欠損値を最頻値で補完できる。
DataFrameの各列の最頻値を算出するには、「mode().iloc[0]」を使います。
https://py-memo.com/python/missing-value-delete-interpolate/結果のpandas.DataFrameの一行目が各列の最頻値(複数ある場合はその中の一つ)になる。一行目はiloc[0]で取得可能。
https://note.nkmk.me/python-pandas-mode/

 

25.

DataFrameの基本統計量に関する次の記述のうち、誤っているものはどれか。

あなたの回答: describeメソッドは期待値を取得できる。
正答: describeメソッドは期待値を取得できる。

 

 

26.

pandasに関する次の記述のうち、正しいものはどれか。

あなたの回答: 相関係数はcorr関数で出力でき、その値は必ず-1から1の間となる。1に近いほど強い正の相関関係があり、-1に近いほど強い負の相関関係があり、0では相関関係がないといえる。
正答: 相関係数はcorr関数で出力でき、その値は必ず-1から1の間となる。1に近いほど強い正の相関関係があり、-1に近いほど強い負の相関関係があり、0では相関関係がないといえる。

 

 

27.

Matplotlibに関する次の記述のうち、正しいものはどれか。

あなたの回答: ヒストグラムはhistメソッドで、散布図はscatterメソッドで、折れ線グラフはplotメソッドで、曲線グラフはcurveメソッドで描画することができる。
正答: 「オブジェクト指向スタイル」は一つのfigureオブジェクトに対して複数のサブプロットを指定できる。つまり複数のグラフをまとめて表示できるという利点がある。

→参考:https://study.prime-strategy.co.jp/coverage/py3an1-27/

curveメソッド→存在しない??

 

28.

Matplotlibに関する次の記述のうち、誤っているものはどれか。

あなたの回答: 同じフォントの指定を複数回繰り返す場合、フォントの設定をタプルデータとして作成し、fontdict引数に一度に指定できる。タプルはイミュータブルなため、誤って上書きされることを防ぎやすい。
正答: 同じフォントの指定を複数回繰り返す場合、フォントの設定をタプルデータとして作成し、fontdict引数に一度に指定できる。タプルはイミュータブルなため、誤って上書きされることを防ぎやすい。
→タプルではなく辞書データが正しいです。またこの場合の辞書データは上書きも可能です。参考:https://study.prime-strategy.co.jp/coverage/py3an1-28/

 

29.

Matplotlibを用いてsin, cosのグラフを描画する次のスクリプトに関する説明のうち正しいものはどれか。

import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0.0, 15.0, 0.1)
y1 = np.sin(x)
y2 = np.cos(x)
fig, ax = plt.subplots()
ax.plot(x, y1, label=’sin’)
ax.plot(x, y2, label=’cos’)
ax.legend()

plt.show()

あなたの回答: 上記スクリプトの描画オブジェクトの中に配置されるサブプロットは2つである。
正答: np.sin(x)、np.cos(x)は、それぞれ引数「x」を弧度法のラジアンで処理する。
→サブプロットはひとつ
https://study.prime-strategy.co.jp/coverage/py3an1-29/
https://stats.biopapyrus.jp/python/subplot.html

 

30.

次のスクリプトに関する説明のうち正しいものはどれか。

import matplotlib.pyplot as plt
fig, ax = plt.subplots()
x = [1, 2, 3]
y1 = [10, 2, 3]
y2 = [5, 3, 6]
labels = [‘Setosa’, ‘Versicolor’, ‘Virginica’]
【ア】
ax.bar(x, y_total, tick_label=labels, label=’y1′) …【イ】
ax.bar(x, y2, label=’y2′) …【ウ】
ax.legend()
plt.show()

あなたの回答: 描画されるグラフには「Setosa」「Versicolor」「Virginica」が凡例として表示される。
正答: barメソッドの引数に変数y1は利用されていない。

→「Setosa」「Versicolor」「Virginica」は目盛りのラベル
ax.bar(x, y_total, tick_label=labels, label=’y1′) …【イ】
ax.bar(x, y2, label=’y2′)
それぞれy1,y2の凡例が指定されている。

参考:https://study.prime-strategy.co.jp/coverage/py3an1-30/
barメソッドの引数として変数xでx軸の値、y_totalでy軸の値、tick_label引数で目盛りのラベル、そしてlabel引数で凡例用ラベルを指定します。

さらに同じサブプロットのaxにbarメソッドで棒グラフを一つ追加します。x軸は変わらず、y軸の値は変数y2で指定します。

またlegendメソッドで凡例を表示させます。

 

 

31.

Matplotlibを用いて正規分布に従うランダムな値をヒストグラムで描画する次のコード群に関する説明のうち誤っているものはどれか。

import numpy as np
import matplotlib.pyplot as plt
np.random.seed(123)
mu = 100
sigma = 15
x = np.random.normal(mu, sigma, 1000)
fig, ax = plt.subplots()
n, bins, patches = ax.hist(x, bins=25, orientation=’horizontal’)
for i, num in enumerate(n):
print(‘{:.2f} – {:.2f} {}’.format(bins[i], bins[i + 1], num))

plt.show()

あなたの回答: このスクリプトを実行するとヒストグラムに加えて度数分布表が出力される。
正答: histメソッドのデフォルトのビン数は20であるが、上記スクリプトで出力されるヒストグラムのビンの数は25である
→bins ビン (表示する棒) の数。階級数。(デフォルト値: 10)
https://pythondatascience.plavox.info/matplotlib/%E3%83%92%E3%82%B9%E3%83%88%E3%82%B0%E3%83%A9%E3%83%A0

 

32.

Matplotlibを用いて円グラフを描画する次のスクリプトに関する説明のうち誤っているものはどれか。

import matplotlib.pyplot as plt
labels = [‘spam’, ‘ham’, ‘egg’]
x = [10, 3, 1]
fig, ax = plt.subplots()
ax.pie(x, labels=labels, startangle=90, counterclock=False, shadow=True, autopct=’%1.2f%%’)

plt.show()

あなたの回答: 円グラフのアスペクト比は保持される
正答: 円グラフのアスペクト比は保持される

https://study.prime-strategy.co.jp/coverage/py3an1-32/

 

33.

機械学習の前処理に関する次の記述のうち、正しいものはどれか。

あなたの回答: 最小最大正規化とは、特徴量の最小値が0、最大値が1を取るように特徴量を正規化する処理であり、scikit-learnでは、preprocessingモジュールのMinMaxScalerクラスを用いて実行することができる。
正答: 最小最大正規化とは、特徴量の最小値が0、最大値が1を取るように特徴量を正規化する処理であり、scikit-learnでは、preprocessingモジュールのMinMaxScalerクラスを用いて実行することができる。

https://study.prime-strategy.co.jp/coverage/py3an1-33/

 

34.

分類に関する次の記述のうち、正しいものはどれか。

あなたの回答: 構築したモデルが持つ未知のデータに対する対応能力を「汎化能力」という。
正答: 構築したモデルが持つ未知のデータに対する対応能力を「汎化能力」という。

https://study.prime-strategy.co.jp/coverage/py3an1-34/

 

35.

機械学習のアルゴリズムに関する次の記述のうち、正しいものはどれか。

あなたの回答: scikit-learnでランダムフォレストを実行するにはensembleモジュールのRandomForestClassifierクラスを使用する。パラメータで決定木の個数を指定することもできる。
正答: scikit-learnでランダムフォレストを実行するにはensembleモジュールのRandomForestClassifierクラスを使用する。パラメータで決定木の個数を指定することもできる。

 

 

36.

次のスクリプトに関する説明のうち誤っているものはどれか。

from sklearn.linear_model import LinearRegression
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
boston = load_boston()
X, y = boston.data, boston.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=123)
lr = LinearRegression()
lr.fit(X_train, y_train )
y_pred = lr.predict(X_test)

あなたの回答: このスクリプトの最終行では、学習したモデルを用いてテスト用の説明変数から予測される目的変数を取得している。
正答: このスクリプトで行う回帰は住宅価格を特徴量から求める単回帰である。

https://study.prime-strategy.co.jp/coverage/py3an1-36/

 

37.

次元削減に関する次の記述のうち、正しいものはどれか。


あなたの回答: 主成分分析(principal component analysis)は、scikit-learnのdecompositonモジュールのPCAクラスを用いて実行することができる。
正答: 主成分分析(principal component analysis)は、scikit-learnのdecompositonモジュールのPCAクラスを用いて実行することができる。

 

 

38.

モデルの評価指標に関する次の記述のうち、誤っているものはどれか。


あなたの回答: F値は、適合率と再現率の調和平均として定義される。F値は2*適合率*再現率/(適合率+再現率)で計算することができる。
正答: 適合率、再現率、F値、正解率は、機械学習を用いて構築した回帰モデルの良し悪しを評価する指標であり、混同行列から計算する。
混同行列で計算する適合率、再現率、F値、正解率は、(回帰ではなく)分類モデルの評価指標です。
https://study.prime-strategy.co.jp/coverage/py3an1-38/

 

 

39.

次のスクリプトに関する説明のうち誤っているものはどれか。

from sklearn.datasets import load_iris
from sklearn.model_selection import GridSearchCV
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
iris = load_iris()
X, y = iris.data, iris.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=123)
clf = DecisionTreeClassifier()
param_grid = {‘max_depth’: [3, 4, 5]}
cv = GridSearchCV(clf, param_grid=param_grid, cv=10)
cv.fit(X_train, y_train)
y_pred = cv.predict(X_test)

あなたの回答: このスクリプトではハイパーパラメータである決定木の深さをグリッドサーチにより求めている。ハイパーパラメータを最適化する代表的な方法としてほかにランダムサーチがある。
正答: このスクリプトを複数回実行した場合、求められる決定木の深さの最適値は必ず同じ値となる。
GridSearchCVクラスはハイパーパラメータ、今回は決定木の深さを最適化するために用います。
決定木の深さの候補として、3つの値(「3」「4」「5」)からなるリストと引数名を対応付ける辞書データをparam_grid変数に格納します。

fitメソッドに学習データを与えて、cvにデータを学習させ分類モデルを構築します。

ここで、推測された最適な決定木の深さが「3」であることを確認しておきます。

なお先ほどGridSearchCVの引数cvに、10分割の交差検証を指定したため、最適な決定木の深さの値は毎回変わります。
https://study.prime-strategy.co.jp/coverage/py3an1-39/

 

40.

クラスタリングに関する次の記述のうち、正しいものはどれか。


あなたの回答: k-meansは、scikit-learnのclusterモジュールのAgglomerativeClusteringクラスを用いることによって実行することができる。
正答: k-meansは、最初にランダムにクラスタ中心を割り当て、クラスタ中心を各データとの距離を計算しながら修正し、最終的なクラスタ中心が収束するまで再計算を行いクラスタリングする手法である。

→k-meansの実行にはclusterモジュールのKMeansクラスを用います。

https://study.prime-strategy.co.jp/coverage/py3an1-40/

シェアする

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

フォローする