линейная регрессия :: Машинное обучение

Это метод прогнозирования непрерывнойзависимой переменной (Y) на основе значений независимых переменных (X). Его можно использовать для случаев, когда мы хотим предсказать некоторую непрерывную величину.

Y = B+mX

м = уклон

пакеты импорта: numpy, pandas,matplotlib.pyplot, seaborn.

%matplotlib inline
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
import seaborn as sns

Загрузите данные

df = pd.read_csv('lineardata.csv')
print(df.shape)
df.head(13)

Назначьте значения x по оси x и значения y по оси y.

X = df['x'].values
Y = df['y'].values

Узнайте средние значения x и y

mean_x = np.mean(X)
mean_y = np.mean(Y)
print(mean_x , mean_y)
3.0 3.6

m = len(X)

numer = 0
denom = 0
for i in range(m):
    numer += (X[i] - mean_x) * (Y[i] - mean_y)
    denom += (X[i] - mean_x) ** 2
b1 = numer / denom
b0 = mean_y - (b1 * mean_x)

print(b1, b0)
0.4 2.4

# Plotting Values and Regression Line

max_x = np.max(X) + 4
min_x = np.min(X) - 2

print(max_x,min_x)
9 -1

# Вычисление значений строки x и y

х = np.linspace (мин_х, макс_х, 5)

у = b0 + b1 * х печать (х, у)

[-1. 1.5 4. 6.5 9. ] [2. 3. 4. 5. 6.]

# Ploting Line
plt.plot(x, y, color='#58b970', label='Regression Line')

# Ploting Scatter Points
plt.scatter(X, Y, c='#ef5423', label='Scatter Plot')

plt.xlabel('x')
plt.ylabel('y')
plt.legend()
plt.show()

ss_t = 0
ss_r = 0
for i in range(m):
    y_pred = b0 + b1 * X[i]
    ss_t += (Y[i] - mean_y) ** 2
    ss_r += (Y[i] - y_pred) ** 2
r2 = 1 - (ss_r/ss_t)
print(r2)
0.3076923076923078