Written by elevenlab employee

[Python] 線形回帰を描画

# 多次元配列の計算をサポートするライブラリ
import numpy as np

# NumPyのためのグラフ描画ライブラリ
import matplotlib.pyplot as plt
data_size = 100

# 0 ~ 1 まで等間隔な数列を100個生成
X = np.linspace(0,1, data_size)
# [0.        , 0.01010101, 0.02020202, ..., 0.97979798, 0.98989899, 1.        ]

# X + 0〜1の乱数を100個 + 3
Y = X + np.random.rand(data_size) + 3
# [3.88078969, 3.60298319, 3.1237948, ..., 4.54658398, 4.54489002, 4.91900434]
# 図を描画
plt.scatter(X, Y)
plt.show()
# X の平均
x_avg = sum(X) / len(X)

# Y の平均
y_avg = sum(Y) / len(Y)

# 中心点を描画
def plt_show():
    plt.scatter(X, Y)
    plt.plot(x_avg, y_avg, '*', color='r')
plt_show()
# a = 合計((X - X平均) * (Y - Y平均)) / 合計((X - X平均)**2)
# b = Y平均 - (a * X平均)
# line_y = ax + b

a = sum((X - x_avg) * (Y - y_avg)) / sum((X - x_avg)**2)
b = y_avg - (a * x_avg)
line_y = a*X + b

plt.plot(X, line_y, 'g')
plt_show()
この記事を書いた人

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です