015_サンプルデータを自動生成しよう(二重円)

前回は三日月型のデータセットの生成方法について学びました

今回は二重円のデータセット同心円のデータセットの生成方法について学習しましょう!

目次

分類用データセットの自動生成をしよう【二重円】

make_circles()命令で「二重円のデータセット」を自動で生成することができます!このデータセットは直線で分割できません。
パラメータは三日月型と同じく
・データの個数
ノイズ
・ランダム生成の種
を指定して毎回同じ形のランダムデータにすることができます。

以下の変数を用いて実際にコードを書いていきましょう!

変数名意味
random_stateランダム生成の種を指定
n_samplesデータの個数
noiseノイズ

①ノイズ0.1のデータを作ろう

ランダムの種 = 4
ノイズ = 0.1
点の数 = 300

を指定してノイズが0.1の二重円のデータセットを作ってみましょう!

コード

from sklearn.datasets import make_circles
X, y = make_circles(
    random_state=4,
    noise = 0.1, #1
    n_samples=300)

# 特徴量(X)でデータフレームを作り、分類(y)をtargetの列として追加
df = pd.DataFrame(X)
df["target"] = y

df0 = df[df["target"]==0] #2
df1 = df[df["target"]==1] #3

plt.figure(figsize=(5, 5))
plt.scatter(df0[0], df0[1], color="c", alpha=0.4) #4
plt.scatter(df1[0], df1[1], color="m", alpha=0.4) #5
plt.grid()
plt.show()

#1 ノイズ0.1
#2~3 分類別にデータフレームを分ける
#4 シアンの散布図
#5 マゼンタの散布図

参考資料:Python3年生機械学習のしくみ

実行結果

これで二重円のデータを生成することが出来ました!

分類用データセットの自動生成をしよう【同心円】

make_gaussian_quantiles()命令で「同心円のデータセット」を自動で生成することができます!このデータセットも直線で分割できません。
パラメータは
・データの個数
・特徴量の数
・グループの数
・ランダム生成の種
を指定して毎回同じ形のランダムデータにすることができます。

以下の変数を用いて実際にコードを書いていきましょう!

変数名意味
random_stateランダム生成の種を指定
n_samplesデータの個数
n_features特徴量の数
n_classesグループの数

①グループ3つの同心円

ランダムの種 = 4
特徴量=2
グループ=3
点の数 = 300

を指定してグループが3つの同心円のデータセットを作ってみましょう!

from sklearn.datasets import make_gaussian_quantiles
X, y = make_gaussian_quantiles(
    random_state=4,
    n_features=2,
    n_classes=3, #1
    n_samples=300)

df = pd.DataFrame(X)
df["target"] = y

df0 = df[df["target"]==0] #2
df1 = df[df["target"]==1] #3
df2 = df[df["target"]==2] #4

plt.figure(figsize=(5, 5))
plt.scatter(df0[0], df0[1], color="c", alpha=0.4) #5
plt.scatter(df1[0], df1[1], color="m", alpha=0.4) #6
plt.scatter(df2[0], df2[1], color="y", alpha=0.4) #7
plt.grid()
plt.show()

#1 グループ3つ
#2~4 分類別にデータフレームを分ける
#5~7 シアン・マゼンタ・黄色の散布図

参考資料:Python3年生機械学習のしくみ

実行結果

グループを3つもった同心円のデータセットを作成することができました!

次回は回帰用データセットを作成する方法を学んでいきましょう!

目次