CodeLab
145 subscribers
538 photos
20 videos
159 links
Говорим просто о сложном

Обсуждение, новости, материал и сплетни — все здесь https://t.me/CodeLabMLChat
Download Telegram
ВЕРНУТЬСЯ К НАВИГАЦИИ

3️⃣ А что дальше? Дальше мы создаем массив значений x от 0 до 2π с шагом 0.01.

xx = np.arange(0, 2 * np.pi, 0.01) #значения, по которым будут вычисляться точки на оси x


2π соответствует одному полному циклу синусоиды (360 градусов в радианах)


4️⃣ Дальше нам нужна строка, которая вычислит значения у для каждого x (естественно, применяем функцию sin(x), у нас синусоида, как никак 🙂)

yy = np.sin(xx)


▫️Функция np.sin в библиотеке NumPy позволяет вычислить синус для массива значений x, таких как np.arange(0, 2 * np.pi, 0.01)

▫️Она возвращает массив значений
y, который соответствует значениям синуса для каждого x


5️⃣ Строим график y=sin(x) (линию) с подписью label='y = sin(x)':

 ax.plot(xx, yy, label='y = sin(x)')


6️⃣

ax.set_title('График синусоиды') # заголовок графика
ax.set_xlabel('x (угол в радианах)') # подпись оси x
ax.set_ylabel('y (значение синуса)') # подпись оси y
ax.legend() # Отображает легенду, которая берет текст из label (пункт 5)
plt.show() # сам график


ВЕРНУТЬСЯ К НАВИГАЦИИ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥1👍1🤓1👨‍💻1
ВЕРНУТЬСЯ К НАВИГАЦИИ

🧑‍💻 Весь код:


import matplotlib.pyplot as plt
import numpy as np


fig = plt.figure(figsize=(5, 4))
ax = fig.add_axes([0.1, 0.1, 0.8, 0.8])


xx = np.arange(0, 2 * np.pi, 0.01) # От 0 до 2π с шагом 0.01
yy = np.sin(xx)


ax.plot(xx, yy, label='y = sin(x)')

ax.set_title('График синусоиды')
ax.set_xlabel('x (угол в радианах)')
ax.set_ylabel('y (значение синуса)')
ax.legend()

plt.show()


ВЕРНУТЬСЯ К НАВИГАЦИИ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥2🤯1🤓1
Завтра выложу очень интересный пост, гайсы. Понимаю, что их сейчас нет, у меня сессия идет жесточайшая, но я надеюсь, что, вы, мои любимые подписичники, поймете меня 🧑‍💻 🙏
2🥰1
ВЕРНУТЬСЯ К НАВИГАЦИИ

🧑‍💻 Всем добрый вечер! Надеюсь, вы хорошо проводите свое время, ведь сейчас будет пост, а значит, вы его проведете еще лучше...Итак, линейная регрессия

Допустим, есть у нас набор точек:

{x₁ = 50, y₁ = 10
{x₂ = 60, y₂ = 30
{x₃ = 70, y₃ = 40
{x₄ = 100, y₄ = 50


x — площадь дома, y — цена дома


Для начала, делаем визуал наших точек:

from matplotlib import pyplot as plt #Иморт библиотек

plt.scatter([50, 60, 70, 100], [10, 30, 40, 50], 50, 'g', 'o', alpha = 0.8) #В ппервых двух квадратных скобках это наши координаты x и y. Число 50 - это размер точек, g - green (цвет), o - Форма точек (круг). alpha = 0.8 - Прозрачность точек

plt.show()


Получившийся график в комментах ⬇️

ВЕРНУТЬСЯ К НАВИГАЦИИ
Please open Telegram to view this post
VIEW IN TELEGRAM
2❤‍🔥1🥰1
ВЕРНУТЬСЯ К НАВИГАЦИИ

🧑‍💻 Дальше выведем матрицу X (Единички для каждого объекта и 2 столбик это данные для обучения (площадь нашей хаты) )

import numpy as np

X = np.array([[1, 50], [1, 60], [1, 70], [1, 100]])

X


⚙️ Вывод:

array([[  1,  50],
[ 1, 60],
[ 1, 70],
[ 1, 100]])


ВЕРНУТЬСЯ К НАВИГАЦИИ
Please open Telegram to view this post
VIEW IN TELEGRAM
2❤‍🔥1🤯1
ВЕРНУТЬСЯ К НАВИГАЦИИ

⚙️ Теперь выведем матрицу для Y:

Вектор Y записывается в виде столбца


import numpy as np

Y = np.array([[10], [30], [40], [50]])

Y


⚙️ Вывод:

array([[  1,  50],
[ 1, 60],
[ 1, 70],
[ 1, 100]])


ВЕРНУТЬСЯ К НАВИГАЦИИ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥31🤓1
ВЕРНУТЬСЯ К НАВИГАЦИИ

0⃣🧑‍💻 Продолжаем изучать линейную регрессию и начнем мы с реализации формулы:

🟰ẇ = (Xᵀ * X)⁻¹ * Xᵀ * Y🟰

⚙️ Что это за формула и что здесь что? Я для вас кинул скрины в комменты, как эта формула получилась:

1⃣ У нас изначально была формула, возможно, вы ее видели раньше:

🟰 y = a * x + b🟰

2⃣ Заменим ее на обозначения w₁ и w₀, тогда формула приобретет вид:

🟰 y = w₁ * x + w₀ * 1 = w₁ * x₁ + w₀ * x₀ 🟰

w₀ — свободный член, который отвечает за сдвиг линии регрессии

w₁, w₂ — веса (коэффициенты) для признаков x₁, x₂


🔗 Остальные преобразования формул в комментах ⬇️⬇️⬇️

3⃣ Итак, как только вы посмотрите все преобразования этих формул, мы придем к виду, который я вам показал в начале:

🟰ẇ = (Xᵀ * X)⁻ ¹ * Xᵀ * Y🟰

4⃣ Теперь, начнем 'по кусочкам' выписывать формулу:

▫️Вчера мы выводили матрицу X и матрицу Y. Дак вот, теперь самое время с ними поработать

5⃣🔗 Умножим матрицу X (объекты - признаки) на себя же транспонированную.

Транспонированная матрица — это матрица, которая получается из исходной путём перестановки строк и столбцов. Другими словами, чтобы получить транспонированную матрицу, необходимо взять каждую строчку по очереди и переписать её в виде столбца, не меняя порядка следования.

⬇️⬇️⬇️
###
Берем блок кода с прошлого поста (там мы выводили матрицу для X)
###

import numpy as np

X = np.array([[1, 50], [1, 60], [1, 70], [1, 100]]) # Создание массива (получаем матрицу 4 на 2)

X_T_X = (X.T).dot(X)

###
Транспанируем матрицу X.T. X.T — это транспонированная версия матрицы X. Строки становятся столбцами, а столбцы — строками.
###

X_T_X


🔗 Вывод:

array([[    4,   280],
[ 280, 21000]])


🔗 Мы перемножаем матрицу X.T

[[  1,   1,   1,   1],
[ 50, 60, 70, 100]]


🔗 На матрицу X

[[  1,  50],
[ 1, 60],
[ 1, 70],
[ 1, 100]]

Кстати, че за единицы? Я про единицы, которые рядом с нашими признаками:

Единицы в первом столбце нужны, чтобы модель линейной регрессии учитывала свободный член
🟰w₀🟰

⬇️⬇️⬇️
⚙️ Единицы нужны, чтобы линейная регрессия не привязывалась к точке (0, 0) и могла сдвигать прямую вверх или вниз. Грубо говоря, гайс, мы включаем столбец единиц чтобы включить w₀ (свободный член)

w₀ — это сдвиг прямой вверх или вниз
w₁ — это наклон прямой


ВЕРНУТЬСЯ К НАВИГАЦИИ
Please open Telegram to view this post
VIEW IN TELEGRAM
👨‍💻2❤‍🔥1👍1🥰1🤓1
ВЕРНУТЬСЯ К НАВИГАЦИИ

🔗 Вот вам пример использования наших новых функций:

import numpy as np

# Матрица X
X = np.array([[1, 50], [1, 60], [1, 70], [1, 100]])

# Транспонированная матрица X
X_T = X.T

# Печатаем результаты
print("Исходная матрица X:")
print(X)

print("\nТранспонированная матрица X.T:")
print(X_T)

# Считаем X_T_X
X_T_X = X_T.dot(X)
print("\nПроизведение X.T @ X:")
print(X_T_X)


ВЕРНУТЬСЯ К НАВИГАЦИИ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥2👍1🥰1🤯1👀1
ВЕРНУТЬСЯ К НАВИГАЦИИ

6⃣🔗 Таак, теперь находим обратную матрицу к ней, в нашей формуле она обозначена X⁻¹

⚙️ Последнее, что мы с вами сделали, это перемножили транспонированную матрицу на саму себя же:

import numpy as np

X = np.array([[1, 50], [1, 60], [1, 70], [1, 100]])

X_T_X = (X.T).dot(X)
X_T_X


🔗 Таак, мы просто красавчики, теперь найдем обратную ей матрицу, об этом я сказал в начале поста:

from numpy.linalg import inv

X_T_X_inverted = inv(X_T_X)

X_T_X_inverted


7⃣⚙️ Дописываем формулу до конца!

(Xᵀ * X)⁻ ¹ * Xᵀ * Y

w = X_T_X_inverted.dot(X.T).dot(Y)
print('w_1=%.5f, w_2=%.3f' % (w[0][0], w[1][0]))


🧑‍💻 Полный код:

import numpy as np
from numpy.linalg import inv

# Матрица X и вектор Y
X = np.array([[1, 50], [1, 60], [1, 70], [1, 100]])
Y = np.array([[10], [30], [40], [50]])

# Вычисление X^T * X
X_T_X = (X.T).dot(X)

# Обратная матрица (X^T * X)^-1
X_T_X_inverted = inv(X_T_X)

# Вычисление w = (X^T * X)^-1 * X^T * Y
w = X_T_X_inverted.dot(X.T).dot(Y)

print('w_1=%.5f, w_2=%.3f' % (w[0][0], w[1][0]))


ВЕРНУТЬСЯ К НАВИГАЦИИ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥2👍2🥰1🤡1👨‍💻1
ВЕРНУТЬСЯ К НАВИГАЦИИ

Вот такой у нас получится вывод с прошлого поста. Что это вообще такое?


y = -17.5 + 0.714 * x — мы получили уравнение прямой

y — является целевой переменной (это как раз предсказываемое значение, цена нашей хаты)

x — это признак или независимая переменная (площадь нашей хаты)

w_1=-17.50000, w_2=0.714


Набор из 4 точек, которые мы построили тут (Смотрите коменты), описывает прямая линия с этим уравнением y = -17.5 + 0.714 * x

ВЕРНУТЬСЯ К НАВИГАЦИИ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥2👍2🥰1🤯1
⚙️ Гайс, уже сегодня выйдет продолжение, мы построим свой первый график линейной регрессии, так что ждите большой пост!
❤‍🔥3👨‍💻32🤯2🤓1
🧑‍💻🔗 Как обычно подготовил вам красивую картиночку, чтобы глаз радовался. Всем добрый вечер! ▫️Как договаривались, сегодня линейная регрессия и за насколько постов я постараюсь полностью разжевать вам код и объяснить что происходит.

Для начала, вспомним, о чем мы уже написали:

# имортируем библиотеки
import numpy as np
from numpy.linalg import inv
import matplotlib.pyplot as plt

# Наши данные
X = np.array([[1, 50], [1, 60], [1, 70], [1, 100]]) # площадь дома (входной признак)
Y = np.array([[10], [30], [40], [50]]) # цена дома (целевая переменная)

# Матрица X_T_X - транспанированная матрица
X_T_X = (X.T).dot(X) # Матричное провзедение Xᵀ * X (вычисляет коэффициенты регресии)
X_T_X_inverted = inv(X_T_X) # Находим обратную матрицу для полученного значения Xᵀ * X

w = X_T_X_inverted.dot(X.T).dot(Y) # Здесь мы прописали саму формулу

print('w_1=%.5f, w_2=%.3f' % (w[0][0], w[1][0]))


ВЕРНУТЬСЯ К НАВИГАЦИИ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥3👍2🤯1🤡1🤓1
ВЕРНУТЬСЯ К НАВИГАЦИИ

🧑‍💻 Что насчет последней строки вывода?

print('w_1=%.5f, w_2=%.3f' % (w[0][0], w[1][0]))


🔵'w_1=%.5f, w_2=%.3f' — это форматированная строка, которая определяет, как будут выведены значения w₀ и w₁

🔵% — оператор, который связывает строку с указанными значениями из скобок (w[0][0], w[1][0])

🔵w — это результат вычисления коэффициентов линейной регрессии. Это матрица (или двумерный массив) размером 2×1

🔗 Теперь поговорим о каждом подробнее:

🔵%.5f — форматирует w₀ как число с плавающей точкой (дробное число), ( .5 указывает, что нужно вывести 5 цифр после запятой.)

🔵%.3f — форматирует w₁ как число с плавающей точкой ( .3 указывает, что нужно вывести 3 цифры после запятой.)

⚙️ Что касается наших получившихся значений?

🔵 w[0][0] — это первый элемент матрицы w₀

🔵w[1][0] — это второй элемент матрицы w₁

🔗 w₀ и w₁ зависят от распределения входных данных (их значений и количества)

Вывод:

w₀ = -17,5
w₁ = 0.714


ВЕРНУТЬСЯ К НАВИГАЦИИ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥2👍1🤯1🤡1🤓1
ВЕРНУТЬСЯ К НАВИГАЦИИ

🔗 Разбираем следующий блок кода:

margin = 10
X_min = X[:, 1].min() - margin
X_max = X[:, 1].max() + margin


1⃣🔵margin — отступ для улучшения вида графика (в комментах скину оба графика (с margin) и (без margin))

margin = 10


2⃣🔵X[:, 1] — извлекает значения площади из X (Вторая колонка, где речь идет про площадь)

🔵X_min и X_max — минимальное и максимальное значение площади с добавлением отступов (отступ как раз margin).

X_min = X[:, 1].min() - margin


🔵.min() — берется минимальное значение в этом столбце (у нас это 50).

🔵margin — уменьшается минимальное значение на 10 для расширения границы слева. (50 - 10 = 40)

🔵Если говорить про X_max, то тут напротив, берется максимальное значение в столбце X (у нас это 100), а затем + margin (то есть + 10), получаем 110

ВЕРНУТЬСЯ К НАВИГАЦИИ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥2👍2🤡1🤓1
📈 Создаем точки для нашей линии:

🔗 Создаем 100 равномерно распределенных точек между X_min и X_max, это точки для оси x, по которым строится прямая.

X_support = np.linspace(X_min, X_max, num=100)


⚙️ Вычисляем значения y для всех точек из X_support (применяя уравнение регрессии y = w₀ + w₁ * x)

Y_model = w[0][0] + w[1][0] * X_support


📊 Теперь настраиваем график:

plt.figure(figsize=(8, 6)) # Создает график размером 8x6 дюймов


🔗 Задаем диапазон по оси x

plt.xlim(X_min, X_max)


🔗 Задаем диапазон по оси y от 0 до максимального значения y + отступ (margin)

plt.ylim(0, Y[:, 0].max() + margin)


⚙️ Теперь добавляем данные на график:

plt.scatter(X[:, 1], Y[:, 0], color='green', label='Исходные данные')


🔗 X[:, 1] — координаты по оси x (второй столбец x — это площади)

🔗 Y[:, 0] — координаты по оси y (цены домов)

plt.plot(X_support, Y_model, color='blue', label='Линейная регрессия')


🔗 X_support — координаты по оси x

🔗 Y_model — координаты по оси y (предсказание модели)

plt.xlabel('Площадь дома') # Подписываем оси
plt.ylabel('Цена дома') # Подписываем оси
plt.title('Линейная регрессия: Цена дома от площади') # Заголовок
plt.legend() # Добавляем легенду
plt.grid() # Сетка на графике


plt.show() # Вызываем наш график


П О Л Н Ы Й К О Д

import numpy as np
from numpy.linalg import inv
import matplotlib.pyplot as plt

# Данные
X = np.array([[1, 50], [1, 60], [1, 70], [1, 100]])
Y = np.array([[10], [30], [40], [50]])

# Матрица X_T_X и обратная матрица
X_T_X = (X.T).dot(X)
X_T_X_inverted = inv(X_T_X)

# Коэффициенты w
w = X_T_X_inverted.dot(X.T).dot(Y)
print('w_1=%.5f, w_2=%.3f' % (w[0][0], w[1][0]))

# Построение линейной модели
margin = 10
X_min = X[:, 1].min() - margin
X_max = X[:, 1].max() + margin

# Поддержка для прямой
X_support = np.linspace(X_min, X_max, num=100)
Y_model = w[0][0] + w[1][0] * X_support

# Настройка графика
plt.figure(figsize=(8, 6))
plt.xlim(X_min, X_max)
plt.ylim(0, Y[:, 0].max() + margin)

# Точки данных
plt.scatter(X[:, 1], Y[:, 0], color='red', label='Исходные данные')

# Прямая регрессии
plt.plot(X_support, Y_model, color='blue', label='Линейная регрессия')

# Добавление подписей
plt.xlabel('Площадь дома')
plt.ylabel('Цена дома')
plt.title('Линейная регрессия: Цена дома от площади')
plt.legend()
plt.grid()

plt.show()
❤‍🔥2🤓2👍1🤯1
Ну и сам результат
👍2🤓21🤯1
⚙️🧑‍💻Гайс, добрый вечер! Я рил скучал, но сессия...сами понимаете в общем. Пока у меня появилось время, надо жестко начинать писать. Сегодня продолжим изучать линейную регрессию. В прошлых постах мы уже неплохо так бустанулись, советую все это прошарить и изучить.

⚙️ Итак, импортируем библиотеку numpy

import numpy as np 
from numpy.linalg import inv # Имортируем функцию для нахождения обратной матрицы

X = np.array([[1, 50], [1, 60], [1, 70], [1, 100]]) # матрица (объекты - признаки)
Y = np.array([[10], [30], [40], [50]]) #Вектор


⚙️ Умножаем транспонированную матрицу (объекты - признаки) на саму себя, используем для этого функцию .dot (для умножения матриц и векторов). Заодно найдем и обратную матрицу и также умножим ее на матрицу X (объекты - признаки).

#(X.T).dot(X) - это просто для понимания, как мы умножили транспонированную мтарицу на саму себя же 

w = inv( # Обратную транспонированную матрицу умножим на X
(X.T).dot(X)
).dot( # Дальше умножим на транспонированную матрицу X.T
X.T
).dot( # И умножим на вектор Y
Y
)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥1👍1🥰1🤯1
Метод наименьших квадратов (МНК) — математический метод, применяемый для решения различных задач, основанный на минимизации суммы квадратов отклонений некоторых функций от экспериментальных входных данных.


⁉️ Зачем это нужно знать? Именно этот метод мы используем когда пишем все эти непонятные формулы.

‼️⚙️ Сейчас очень внимательно: 🔗Здесь вы можете найти в комментах все нужные нам формулы (а точнее одну, остальные для понимания разбора), а сама формула если че вот — (Xᵀ * X)⁻ ¹ * Xᵀ * Y

🔗 А вот отсюда мы сейчас возьмем с вами несколько строчек и постараемся разобрать:

import numpy as np
from numpy.linalg import inv

# Матрица X и вектор Y
X = np.array([[1, 50], [1, 60], [1, 70], [1, 100]])
Y = np.array([[10], [30], [40], [50]])

# Вычисление X^T * X
X_T_X = (X.T).dot(X)

# Обратная матрица (X^T * X)^-1
X_T_X_inverted = inv(X_T_X)

# Вычисление w = (X^T * X)^-1 * X^T * Y
w = X_T_X_inverted.dot(X.T).dot(Y)

print('w_1=%.5f, w_2=%.3f' % (w[0][0], w[1][0]))


🔗 Начнем отвечать на вопросы по каждой строке:

⚙️0️⃣ Здесь особо ниче такого нет, импортируем библиотеки и создаем две матрицы. Хороший вопрос — зач нам единицы в первой матрице? Нам нужно учесть свободный коэффициент w₁ в уравнении y = w₁ + w₂ * x

import numpy as np
from numpy.linalg import inv

# Матрица X и вектор Y
X = np.array([[1, 50], [1, 60], [1, 70], [1, 100]]) # Второй столбец это площади наших хат
Y = np.array([[10], [30], [40], [50]])


1️⃣ Создаем переменную, которая будет хранить результат вычислений нашей транспонированной матрицы на нее же.

X_T_X = (X.T).dot(X)


2️⃣ Вычислим обратную матрицу (Скоро объясню зачем все это)

X_T_X_inverted = inv(X_T_X)


3️⃣ Ну и последним моментов вычислим уже наши коэффициенты для этой формулы y = w₁ + w₂ * x

w = X_T_X_inverted.dot(X.T).dot(Y)


‼️ Кароч гайс, мы по сути просто соединили все в одну формулу и по этой формуле можно уже предсказывать наши будущие значения.

4️⃣ Под конец можно бахнуть вывод, ну а хули

print('w_1=%.5f, w_2=%.3f' % (w[0][0], w[1][0]))


⚙️ Че это за знаки в начале?

w₁ — вывод с точностью до 5 знаков

w₂ — вывод с точностью до 3 знаков

5️⃣ Ну и сам вывод:

w_1=-17.50000, w_2=0.714
❤‍🔥11👍1
Привет подписичники, сегодня ожидайте пост 🙏
❤‍🔥4
🧑‍💻 Итак, продвигаемся в изучении линейной регрессии. Я нашел сегодня вот такой код:

🔗0️⃣
from sklearn import linear_model
reg = linear_model.LinearRegression()
reg.fit([[0, 0], [1, 1], [2, 2]], [0, 1, 2])
reg.coef_


Вывод если что будет такой:

array([0.5, 0.5])


Это такая же линейная регрессия, что мы делали и раньше, но, что изменилось?

⚙️1️⃣ Во первых, добавили библиотеку 🟰sklearn🟰. Из нее мы импортируем модуль 🟰linear_model🟰

2️⃣ Создаем саму модель линейной регрессии:

reg = linear_model.LinearRegression() #Создаем объект класса LinearRegression


3️⃣ Дальше нам надо ее как то обучить:

reg.fit([[0, 0], [1, 1], [2, 2]], [0, 1, 2]) #fit - метод для обучения модели на данных, сначала идут признаки X, затем [0, 1, 2], это значения, которые наша модель и должна предсказать 


4️⃣ Остается получить коэффициенты:

reg.coef_


5️⃣ Результат:

array([0.5, 0.5])
🥰2👍1🤯1
⚙️ Ну вот и подкралась 3 часть навигации по Машинному обучению, пользуйтесь на здоровье:

0⃣ ARRAYS 1 (начинаем работать с NumPy)

1⃣ ARRAYS 2 (разбираемся с массивами)

2⃣ ARRAYS 3 (linspace и arange)

3⃣ ARRAYS 4 (дробные числа)

4⃣ ARRAYS 5 (диапазоны) 🔗 Продолжение

5⃣ MATPLOTLIB

6⃣ График 1 🔗 График 2 🔗 График 3 🔗 График 4 🔗 График 5

7⃣ Математика (Векторы)

8⃣ Что такое норма? (Разбираем максимальную норму)

0⃣ Евклидова норма

🔟 Манхэттенская норма

1⃣1⃣ Frobenius-норма

1⃣2⃣ Скалярное произведение векторов

1⃣3⃣ Векторное произведение

1⃣4⃣ Строим график синусоиды 🔗 Разбираем параметры строки в коде 🔗 Продолжение 🔗 Весь код

1⃣5⃣ НАЧИНАЕМ РАЗБИРАТЬ ЛИНЕЙНУЮ РЕГРЕССИЮ

1⃣6⃣ Выводим матрицу X 🔗 Выводим матрицу для Y

1⃣7⃣ Реализация формулы (Очень важно!!!) 🔗 Примеры использования наших функций 🔗 Дописываем формулу до конца 🔗 Разбираем вывод

1⃣8⃣ Разбираем код с линейной регрессией (формулу пишем сами) 🔗 Разбираем последнюю строку 🔗 Разбираем следующий блок кода 🔗 Точки для нашей линии, визуал и ПОЛНЫЙ КОД 🔗 Результат

1⃣0⃣ Продолжаем разбирать линейную регрессию

2⃣0⃣ Продолжаем разбирать линейную регрессию (вновь формулы)

2⃣1⃣ Разбор нового кода (формулы начинают уходить, оптимизируем процесс)

2⃣2⃣ Применяем линейную регрессию на датасете (fetch_california_housing)

2⃣3⃣ Оцениваем видосик

2⃣4⃣ Разбираем дальше датасет про хаты из Калифорнии 🔗 Продолжение 🔗 Продолжение

2⃣5⃣ Разбираем функцию 🔗 Продолжение 🔗 Весь код

2⃣6⃣ Разбор дз с курса (визуал точек) 🔗 Начинаем разбирать 🔗 Продолжение 🔗 Продолжение 🔗Результат

2⃣7⃣ Метрики качества (очень важная тема) 🔗 Продолжение 🔗 Продолжение

2⃣7⃣ RMSE

2⃣8⃣ Сами пишем задание для метрик🔗 Строим график 🔗 Дополняем код

2⃣0⃣ Следующая метрика R²

3⃣0⃣ Трансформация данных

3⃣1⃣ Масштабирование данных

3⃣2⃣ Показываю на деле как это работает и зачем это надо

3⃣3⃣ Дополняем линейную регрессию преобразованием данных

3⃣4⃣ Рассматриваем sqrt преобразование 🔗 Продолжение (поясняем моменты из прошлых постов)

3⃣5⃣ Разбираем большой код

3⃣6⃣ Min-Max Scalling 🔗 Продолжаем 🔗 Полный код за последние уроки 🔗 Результаты

3⃣7⃣ Последний пост по Z-Core стандартизации 🔗 Формула Z - core 🔗 Дальше продолжаем Z-Core 🔗 САМОЕ ВАЖНОЕ

3⃣8⃣ Разъясняю за наклон и перемещение (w и b) для исходных данных и для стандартизированных данных 🔗 Добавим 2 гистограммы (поясняем за Z-core) 🔗 Ну точно последний пост по Z-core (ОЧЕНЬ ВАЖНО)

3⃣0⃣ Среднее значение ( (μ))
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1111