以下の教本で機械学習を勉強中です。
すぐに使える! 業務で実践できる! Pythonによる AI・機械学習・深層学習アプリのつくり方
以下のサンプルコードですが、何度、トライしても解読不能です。。
特に(*2)がよくわかりません。。
【概要】回帰分析で明日の気温予測をするロジック
どなたか(*2)について、解説頂けないでしょうか?
個々の関数は判るのですが、構造・構成がわかりません。。
- なぜ、学習用データを作成する関数make_data()の中で、for文2つが入れ子に入る?
- for文それぞれの中で、特に、入れ子の入れ子にあるfor文ではなぜ、変数が多い?それぞれの変数の意味は?
- 最後にreturn (x, y)するのは、さすがに判る。同様に、append()でデータを蓄積しているのも判る。
Python
1from sklearn.linear_model import LinearRegression 2import pandas as pd 3import numpy as np 4import matplotlib.pyplot as plt 5 6# 気温データ10年分の読み込み 7df = pd.read_csv('kion10y.csv', encoding="utf-8") 8 9# データを学習用とテスト用に分割する ---(*1) 10train_year = (df["年"] <= 2015) 11test_year = (df["年"] >= 2016) 12interval = 6 13 14# 過去6日分を学習するデータを作成 ---(*2) 15def make_data(data): 16 x = [] # 学習データ 17 y = [] # 結果 18 temps = list(data["気温"]) 19 for i in range(len(temps)): 20 if i < interval: continue 21 y.append(temps[i]) 22 xa = [] 23 for p in range(interval): 24 d = i + p - interval 25 xa.append(temps[d]) 26 x.append(xa) 27 return (x, y) 28 29 30train_x, train_y = make_data(df[train_year]) 31test_x, test_y = make_data(df[test_year]) 32 33# 直線回帰分析を行う ---(*3) 34lr = LinearRegression(normalize=True) 35lr.fit(train_x, train_y) # 学習 36pre_y = lr.predict(test_x) # 予測 37 38# 結果を図にプロット ---(*4) 39plt.figure(figsize=(10, 6), dpi=100) 40plt.plot(test_y, c='r') 41plt.plot(pre_y, c='b') 42plt.savefig('tenki-kion-lr.png') 43plt.show()
回答3件
あなたの回答
tips
プレビュー