print(model.coef_) # [[1.5 0.7]]
print(model.intercept_) # [2.0]
Что будет выводить
R**2 score: 0.8533
MAE: 0.8395
MSE: 1.0314
Коэффициенты модели: [[0.95958032 0.785119 ]]
Свободный член (intercept): [2.13459906]
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures
from sklearn.metrics import r2_score
⚙️ Линейная: y= 3x + 2⚙️ Квадратичная: y = -2x² + 4x + 1
.... и так далее
-3x² — добавляет изгиб
x — линейная зависимоть
+5 — смещение вверх, чтобы
np.random.seed(42)
X = np.linspace(-3, 3, 100).reshape(-1, 1)
y = 2 * X ** 3 - 3 * X**2 + X + 5 + np.random.randn(100, 1) * 5
def plot_poly_regression(X, y, degree):
poly = PolynomialFeatures(degree = degree)
X_poly = poly.fit_transform(X)
model = LinearRegression()
model.fit(X_poly, y)
y_pred = model.predict(X_poly)
r2 = r2_score(y, y_pred)
plt.scatter(X, y, color = 'blue', label = 'Исходные данные')
plt.plot(X, y_pred, color = 'blue', label = f'Полином {degree} - й степени (R)²={r2:.3f})')
plt.title(f'Полиномиальная регрессия (степень {degree})')
plt.xlabel('X')
plt.ylabel('y')
plt.legend()
plt.show()
plot_poly_regression(X, y, 1)
plot_poly_regression(X, y, 2)
plot_poly_regression(X, y, 3)
plot_poly_regression(X, y, 5)
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Друзья, готовлю крупный крутецкий пост, наберитесь терпения 🙏 🙏
Please open Telegram to view this post
VIEW IN TELEGRAM
import numpy as np
def sigmoid(x):
return 1 / (1 + np.exp(-x))
def deriv_sigmoid(x):
fx = sigmoid(x)
return fx * (1 - fx)
Please open Telegram to view this post
VIEW IN TELEGRAM
class OurNeuralNetwork:
def __init__(self): — здесь init это конструктор класса, он вызывается автоматически при создании объекта (он задачет случайные веса и смещения для нашей нейросетки)def __init__(self):
self.w1 = np.random.normal()
self.w2 = np.random.normal()
self.w3 = np.random.normal()
self.w4 = np.random.normal()
self.w5 = np.random.normal()
self.w6 = np.random.normal()
self.b1 = np.random.normal()
self.b2 = np.random.normal()
self.b3 = np.random.normal()
🧠 Feedforward (прямое распространение, forward pass ) — это процесс обработки данных в нейронной сети , при котором информация движется лишь в одном направлении : от входного слоя через скрытые слои к выходному.
def feedforward(self, x):
h1 = sigmoid(self.w1 * x[0] + self.w2 * x[1] + self.b1)
h2 = sigmoid(self.w3 * x[0] + self.w4 * x[1] + self.b2)
o1 = sigmoid(self.w5 * h1 + self.w6 * h2 + self.b3)
return o1
⚙️ Обратное распространение ошибки (backpropagation) — это метод, который используется для обучения нейронных сетей путём минимизации ошибки предсказания
def train(self, data, all_y_trues):
learn_rate = 0.1
epochs = 1000
Please open Telegram to view this post
VIEW IN TELEGRAM
Какой метод добавляет элемент в конец списка?
Anonymous Quiz
14%
insert()
79%
append()
7%
extend()
0%
pop()
Зачем нужен метод __init__() в классе?
Anonymous Quiz
23%
Для создания объекта класса.
54%
Для инициализации атрибутов объекта
23%
Для обработки исключений
0%
Для удаления объекта
for epoch in range(epochs):
for x, y_true in zip(data, all_y_trues):
Forward propagation (также известное как прямой проход) — процесс передачи входных данных через слои нейронной сети для генерации вывода
sum_h1 = self.w1 * x[0] + self.w2 * x[1] + self.b1
h1 = sigmoid(sum_h1)
sum_h2 = self.w3 * x[0] + self.w4 * x[1] + self.b2
h2 = sigmoid(sum_h2)
sum_o1 = self.w5 * h1 + self.w6 * h2 + self.b3
o1 = sigmoid(sum_o1)
y_pred = o1
d_l_d_pred = -2 * (y_true - y_pred)
Please open Telegram to view this post
VIEW IN TELEGRAM
🧑💻 🧑💻 Регрессионные модели определяются их весами и смещением — параметрами модели. Однако перед обучением модели мы можем подкрутить множество других ручек, таких как скорость обучения,количество периодов, степень (если рассматривать модель полиномиальной
регрессии) и многие другие. Они называются
гиперпараметрами.
🔵 Любая величина, которую вы устанавливаете перед процессом обучения — это гиперпараметр;🔵 Любая величина, которую модель создает или изменяет в процессе обучения — это параметр.
Please open Telegram to view this post
VIEW IN TELEGRAM
Какой метод в библиотеке scikitlearn используется для разделения данных на обучающую и тестовую выборки?
Anonymous Quiz
64%
train_test_split()
18%
split_data()
18%
divide_dataset()
0%
data_split()