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()
Какой из следующих параметров в линейной регрессии отвечает за наклон прямой?
Anonymous Quiz
45%
intercept
36%
slope
9%
coefficient
9%
bias
Какой показатель используется для оценки качества линейной регрессии?
Anonymous Quiz
0%
Precision
23%
F1-score
54%
R-squared
23%
Accuracy
Что выведет код?
my_dict = {'a': 1, 'b': 2, 'c': 3}
print(my_dict.get('d', 4))
my_dict = {'a': 1, 'b': 2, 'c': 3}
print(my_dict.get('d', 4))
Anonymous Quiz
8%
1
0%
2
58%
4
8%
3
25%
2765