機械学習:塊のデータセットの生成
種類別のコード
【書式】
書式:データ生成
特徴量,目的変数=make_blobs(パラメータ)
書式:カラム名変更
df= df.rename(columns={変更前: 変更後})
※複数ある時は、{}内を「,」でつなげる。
【コード】
from sklearn.datasets import make_blobs
import pandas as pd
# 「塊」のデータセット生成
X,y=make_blobs(
random_state=3, # ランダムの種
n_features=2, # 特徴量の数
centers=2, # 塊の数
cluster_std=1, # ばらつき
n_samples=300 # データ数
)
# 作ったデータセットの情報を表示
print("type(X):",type(X))
print("X.shape:",X.shape)
print("len(X):",len(X))
print("type(y):",type(y))
print("y.shape:",y.shape)
print("len(y):",len(y))
# X(特徴量)でデータフレームを作る
df=pd.DataFrame(X)
# y(悦明変数)を「target」の列名でデータフレームに追加
df["target"]=y
# dfを表示する(カラム名変更前)
print("\n")
print(df.head())
# カラム名を変更する(targetと同じ表記で紛らわしいので)
df= df.rename(columns={0: 'col_0',1: 'col_1'})
# dfを表示する(カラム名変更後)
print("\n")
print(df.head())
【結果】
type(X): <class 'numpy.ndarray'>
X.shape: (300, 2)
len(X): 300
type(y): <class 'numpy.ndarray'>
y.shape: (300,)
len(y): 300
0 1 target
0 -5.071794 -1.364393 1
1 -3.174364 -1.145104 1
2 0.818543 5.937601 0
3 -4.338424 -2.055692 1
4 -3.887373 -0.436586 1
col_0 col_1 target
0 -5.071794 -1.364393 1
1 -3.174364 -1.145104 1
2 0.818543 5.937601 0
3 -4.338424 -2.055692 1
4 -3.887373 -0.436586 1
【書式】
【コード】
%matplotlib inline
import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs
import pandas as pd
# 「塊」のデータセット生成
X,y=make_blobs(
random_state=3, # ランダムの種
n_features=2, # 特徴量の数
centers=2, # 塊の数
cluster_std=1, # ばらつき
n_samples=300 # データ数
)
# X(特徴量)でデータフレームを作る
df=pd.DataFrame(X)
# y(悦明変数)を「target」の列名でデータフレームに追加
df["target"]=y
# カラム名を変更する
df= df.rename(columns={0: 'col_0',1: 'col_1'})
# targetの種類ごとに異なるデータフレームを作る
df0=df[df['target']==0]
df1=df[df['target']==1]
# 散布図を描画する
plt.scatter(df0["col_0"],df0["col_1"],color="b",alpha=0.5)
plt.scatter(df1["col_0"],df1["col_1"],color="g",alpha=0.5)
plt.xlabel("col_0")
plt.ylabel("col_1")
plt.show()
【結果】
【書式】
【コード】
%matplotlib inline
import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs
import pandas as pd
# 「塊」のデータセット生成
X,y=make_blobs(
random_state=3, # ランダムの種
n_features=2, # 特徴量の数
centers=5, # 塊の数
cluster_std=1, # ばらつき
n_samples=300 # データ数
)
# X(特徴量)でデータフレームを作る
df=pd.DataFrame(X)
# y(悦明変数)を「target」の列名でデータフレームに追加
df["target"]=y
# カラム名を変更する
df= df.rename(columns={0: 'col_0',1: 'col_1'})
# targetの種類ごとに異なるデータフレームを作る
df0=df[df['target']==0]
df1=df[df['target']==1]
df2=df[df['target']==2]
df3=df[df['target']==3]
df4=df[df['target']==4]
# 散布図を描画する
plt.scatter(df0["col_0"],df0["col_1"],color="b",alpha=0.5)
plt.scatter(df1["col_0"],df1["col_1"],color="g",alpha=0.5)
plt.scatter(df2["col_0"],df2["col_1"],color="r",alpha=0.5)
plt.scatter(df3["col_0"],df3["col_1"],color="m",alpha=0.5)
plt.scatter(df4["col_0"],df4["col_1"],color="c",alpha=0.5)
plt.xlabel("col_0")
plt.ylabel("col_1")
plt.show()
【結果】
random_state オプションをを変更すると、塊の分布が変わる。
【書式】
【コード】
%matplotlib inline
import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs
import pandas as pd
# 「塊」のデータセット生成
X,y=make_blobs(
random_state=6, # ランダムの種★
n_features=2, # 特徴量の数
centers=5, # 塊の数
cluster_std=1, # ばらつき
n_samples=300 # データ数
)
# X(特徴量)でデータフレームを作る
df=pd.DataFrame(X)
# y(悦明変数)を「target」の列名でデータフレームに追加
df["target"]=y
# カラム名を変更する
df= df.rename(columns={0: 'col_0',1: 'col_1'})
# targetの種類ごとに異なるデータフレームを作る
df0=df[df['target']==0]
df1=df[df['target']==1]
df2=df[df['target']==2]
df3=df[df['target']==3]
df4=df[df['target']==4]
# 散布図を描画する
plt.scatter(df0["col_0"],df0["col_1"],color="b",alpha=0.5)
plt.scatter(df1["col_0"],df1["col_1"],color="g",alpha=0.5)
plt.scatter(df2["col_0"],df2["col_1"],color="r",alpha=0.5)
plt.scatter(df3["col_0"],df3["col_1"],color="m",alpha=0.5)
plt.scatter(df4["col_0"],df4["col_1"],color="c",alpha=0.5)
plt.xlabel("col_0")
plt.ylabel("col_1")
plt.show()
【結果】
cluster_std オプションを変更(大きく)すると、個々の塊がぼやける
【書式】
【コード】
%matplotlib inline
import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs
import pandas as pd
# 「塊」のデータセット生成
X,y=make_blobs(
random_state=6, # ランダムの種
n_features=2, # 特徴量の数
centers=5, # 塊の数
cluster_std=3, # ばらつき★
n_samples=300 # データ数
)
# X(特徴量)でデータフレームを作る
df=pd.DataFrame(X)
# y(悦明変数)を「target」の列名でデータフレームに追加
df["target"]=y
# カラム名を変更する
df= df.rename(columns={0: 'col_0',1: 'col_1'})
# targetの種類ごとに異なるデータフレームを作る
df0=df[df['target']==0]
df1=df[df['target']==1]
df2=df[df['target']==2]
df3=df[df['target']==3]
df4=df[df['target']==4]
# 散布図を描画する
plt.scatter(df0["col_0"],df0["col_1"],color="b",alpha=0.5)
plt.scatter(df1["col_0"],df1["col_1"],color="g",alpha=0.5)
plt.scatter(df2["col_0"],df2["col_1"],color="r",alpha=0.5)
plt.scatter(df3["col_0"],df3["col_1"],color="m",alpha=0.5)
plt.scatter(df4["col_0"],df4["col_1"],color="c",alpha=0.5)
plt.xlabel("col_0")
plt.ylabel("col_1")
plt.show()
【結果】