概要 †numpyを使用した重回帰分析 で実装してみた賃貸価格の推論と同じ事を scikit-learn でやってみる。 目次 †実装 †import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LinearRegression
# モデルの定義
reg_model = LinearRegression()
# データ読み込み
data = np.loadtxt("data/sample_rent1.csv", delimiter=",", skiprows=1)
x = data[:, 1:3].astype("float32") # 広さ, 築年数
t = data[:, 3:4].astype("float32") # 家賃
# 訓練データとテストデータに分割
x_train, x_test, t_train, t_test = train_test_split(x, t, test_size=0.3, random_state=0)
# 標準化
scaler = StandardScaler()
#scaler.fit(x_train)
scaler.fit(x)
x_train_scaled = scaler.transform(x_train)
x_test_scaled = scaler.transform(x_test)
# モデルの訓練
reg_model.fit(x_train_scaled, t_train)
# 精度の検証
result = reg_model.score(x_train_scaled, t_train)
print(result)
# テストデータで推論してみる
x_test_scaled = scaler.transform(x_test[:10])
result = reg_model.predict(x_test_scaled)
print(x_test[:10])
print(result)
# 任意のデータで推論してみる
x_test = np.array([[60, 10],[50, 10],[40, 10]]).astype("float64")
x_test_scaled = scaler.transform(x_test)
result = reg_model.predict(x_test_scaled)
print(x_test)
print(result)
結果 0.8561676175192562 [[56. 23. ] [44.21 5. ] [44.55 31. ] [57.54 11. ] [35. 3. ] [14.99 33. ] [36.3 20. ] [51.06 26. ] [25. 16. ] [58.14 16. ]] [[7.055791 ] [6.8878646] [5.5905004] [7.811143 ] [6.1403027] [2.7608993] [5.391461 ] [6.44668 ] [4.5532727] [7.6109767]] [[60. 10.] [50. 10.] [40. 10.]] [[8.08922316] [7.1665605 ] [6.24389784]] |