概要 †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]] |