016_サンプルデータを自動生成しよう(回帰用データセット)

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

今回は分類用のデータセットではなく、回帰用のデータセットの自動生成について学びましょう!

目次

分類と回帰の違いは?

前回までは分類用データセットについて学習していましたが、今回は回帰用データセットについて学びます。
では、分類用と回帰用では何が違うのでしょうか?

分類とは
あるデータがどの分類に当てはまるかを予測する
つまり、YESかNOかで分ける

回帰とは
ある値に関係する値がどんな数値になるかを予測する

データの図を用いると

のイメージです!

回帰用データセットの自動生成をしよう

make_regression()命令で「回帰のデータセット」を自動で生成することができます!
パラメータは
・データの個数
・特徴量の数
・ノイズ
y切片
・ランダム生成の種
を指定して毎回同じ形のランダムデータにすることができます。

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

変数意味
n_samplesデータの個数
n_features特徴量の数
noiseノイズ
biasy切片
random_stateランダム生成の種

①ノイズ10のとき(X, Y)=(0, 100)を通るデータセット

ランダムの種 = 4
特徴量=1
ノイズ = 10

y切片=100
点の数 = 300

を指定してノイズが10のとき、(X, Y)=(0, 100)を通る線のデータセットを作ってみましょう!

コード

from sklearn.datasets import make_regression
X, y = make_regression(
    random_state=4,
    n_features=1,
    noise=10, #1
    bias = 100, #2
    n_samples=300)

df = pd.DataFrame(X)

plt.figure(figsize=(5, 5))
plt.scatter(df[0], y, color="c", alpha=0.4) #3
plt.grid()
plt.show()

#1 ノイズ10
#2 y切片100
#3 シアンの散布図

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

実行結果

①ノイズ0のとき(X, Y)=(0, 100)を通るデータセット

ランダムの種 = 4
特徴量=1
ノイズ = 0

y切片=100
点の数 = 300

を指定してノイズが0のとき、(X, Y)=(0, 100)を通る線のデータセットを作ってみましょう!

from sklearn.datasets import make_regression
X, y = make_regression(
    random_state=4,
    n_features=1,
    noise=0, #1
    bias = 100,
    n_samples=300)

df = pd.DataFrame(X)

plt.figure(figsize=(5, 5))
plt.scatter(df[0], y, color="c", alpha=0.4)
plt.grid()
plt.show()

#1 ノイズ0

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

実行結果

このようにノイズを指定し、回帰用のデータセットを用意することができました!
データセットを自動生成し用意することで、学習モデルをテストするときなどのとても便利な場面で利用することができるのです!

目次