ランダムで2次元のデータを作成してみる
AIの学習をしようとした場合、学習用データが必要となるため事前に予め準備しておく必要があります。しかしながら、その学習用データの準備は非常に手間がかかるものです。scikit-learnなどでは学習用のデータもありますが、求めるデータ構造と違っている場合や、様々なデータを検証するため自前でデータを用意したいという場合は、データの作成方法について知っておくと便利です。今回はランダムで2次元配列のデータを作成する方法を説明します。
ソースコードの流れ
1、準備作業
2、ランダムで2次元配列を作成
3、ランダムデータを分類に合わせ分割
4、プロット
ソースコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
import matplotlib.pyplot as plt import numpy as np from sklearn.datasets import make_blobs #ランダムで2次元配列を作成する max=100 position, label = make_blobs(n_samples=max, # 作成個数 n_features=2, # 2次元 centers=2, # クラスタ中心2個 cluster_std = 2, # クラスタの大きさ(標準偏差) random_state=0 # 乱数種(再現用) ) #ランダムで2次元配列を作成する position_A =[[],[]] position_B =[[],[]] for index in range(0,max,1): if label[index] < 1: position_A[0].append(position[index][0]) position_A[1].append(position[index][1]) else: position_B[0].append(position[index][0]) position_B[1].append(position[index][1]) #プロット plt.scatter(position_A[0],position_A[1],c="red",label="A",marker="+") plt.scatter(position_B[0],position_B[1],c="blue",label="B",marker="+") plt.legend() plt.show() |
ソースコードの詳細
準備作業
1 2 3 |
import matplotlib.pyplot as plt import numpy as np from sklearn.datasets import make_blobs |
ランダムで2次元配列を作成
1 2 3 4 5 6 7 |
max=100 position, label = make_blobs(n_samples=max, # 作成個数 n_features=2, # 2次元 centers=2, # クラスタ中心2個 cluster_std = 2, # クラスタの大きさ(標準偏差) random_state=0 # 乱数種(再現用) ) |
ランダムデータを分類に合わせ分割
1 2 3 4 5 6 7 8 9 10 |
position_A =[[],[]] position_B =[[],[]] for index in range(0,max,1): if label[index] < 1: position_A[0].append(position[index][0]) position_A[1].append(position[index][1]) else: position_B[0].append(position[index][0]) position_B[1].append(position[index][1]) |
プロット
1 2 3 4 |
plt.scatter(position_A[0],position_A[1],c="red",label="A",marker="+") plt.scatter(position_B[0],position_B[1],c="blue",label="B",marker="+") plt.legend() plt.show() |