ぺーぱーの日々

上機嫌でいること、夢中でいることを目標に、今日も色んなことに手を出します。

MENU

単回帰分析ってなによ?

以下のサイト参考に単回帰分析とやらを、実践してみる。

https://github.com/karaage0703/machine-learning-study/blob/master/01_linear_regression.ipynb

 

 

気になったところのみ記録

import matplotlib.pyplot as plt
import seaborn as sns

plt.plot(x, y, 'o')
plt.show()
 
内容
散布図を描画。
ポイント
引数3番目の'o'
調べてみると、意味は、小さい円だそう。
つまり、散布図に示される点が、小さい円になりますよ。という意味。
 
実際、そうなった。

from sklearn.linear_model import LinearRegression

model_lr = LinearRegression()
model_lr.fit(x, y)
 
内容
予測モデルを作成
ポイント
データの型を最適化する
もともとどんな型していた?

x,yもpandas.DataFrame。
それはそうか。最初にCSVファイルをDFにしたんだもの。
 

なんだかんだで、こんな図式を得られた。どうやら、これが単回帰線というらしい。
切片が〇、傾きが▲って、中学校の数学を思い出す。
したのほうの、決定係数というのは散らばった点と、点たちから引いた線がどれくらい近いか
を示す数字らしい。1に近ければよいらしい。いまはこの辺の理解であえてとどめておく。
 
 

続いては、Numpyで単回帰

import numpy as np
np_x = x.values
np_x = np_x.T[0]
np_y = y.values
np_y = np_y.T[0]
np_xy = np.stack([np_x, np_y])
内容
データをNumpy型に変換
ポイント
np_x = np_x.T[0]
意味
配列の行列を入れ替える。
 
簡単な例
[[0 1 2]
 [3 4 5]]
[[0 3]
 [1 4]
 [2 5]]
 
数字が入った3つ入った2次元配列が、数字が2つ入った3次元配列に転換
 
 

まとめ

超入門かな!と思って、やり始めたけど途中から、難しい(おそらく統計学では、基礎単語?)
単語が出てき始めたので、手が止まり、とりあえず目は最後まで通したという結末。
やはり、Pythonは1つの手段であって、まずは本質である論理を理解しないとその手段も
ただのタイピング練習に終わってしまう。結局は、論理と実践のバランス感覚が重要という
まったく非技術的な教訓を得た一幕でした。