概要
Pythonのシンプルなデータ生成~モデル構築~予測まで
コード
データ生成
import numpy as np
import matplotlib.pyplot as plt
# ノイズ入りデータ
s = 50
x = np.random.random(s)
y = np.sin(x * 2 * np.pi)+np.random.normal(0, 0.1, s)
# 可視化
plt.scatter(x,y)
モデル構築
# 多項式回帰モデルを作成
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures
model = LinearRegression()
x_train = x.reshape(-1, 1)
# 特徴量を高次に変換
poly = PolynomialFeatures(degree=6)
x_train = poly.fit_transform(x_train)
y_train = y.reshape(-1, 1)
model.fit(x_train, y_train)
予測
# 予測
pred_x = np.linspace(0, 1, 200).reshape(-1, 1)
poly_x = poly.transform(pred_x) #予測の入力も高次元に変換する必要がある
pred_y = model.predict(poly_x)
# 可視化
plt.scatter(x, y)
plt.plot(pred_x, pred_y)