🧑💻 Итак, продвигаемся в изучении линейной регрессии. Я нашел сегодня вот такой код:
🔗0️⃣
Вывод если что будет такой:
Это такая же линейная регрессия, что мы делали и раньше, но, что изменилось?
⚙️1️⃣ Во первых, добавили библиотеку 🟰
2️⃣ Создаем саму модель линейной регрессии:
3️⃣ Дальше нам надо ее как то обучить:
4️⃣ Остается получить коэффициенты:
5️⃣ Результат:
🔗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⃣8⃣ Разъясняю за наклон и перемещение (w и b) для исходных данных и для стандартизированных данных 🔗 Добавим 2 гистограммы (поясняем за Z-core) 🔗 Ну точно последний пост по Z-core (ОЧЕНЬ ВАЖНО)
3⃣0⃣ Среднее значение ( (μ))
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1 1 1 1
🧑💻 Гайсы привет, совсем скоро Новый год, но че бы проводить старый изучением линейной регрессии ⁉️ Я даже подготовил вам картиночку соответствующую, надеюсь, вы зацените!
⚙️ Итак, что мы сегодня будем делать ⁉️ Мы будем обучать линейную регрессию на дате сете с ценами на дома в Калифорнии. Дата сет стандартный, поэтому включен в исходный код библиотеки Sklearn
0️⃣ Для начала напишем функцию, она нужна для удобного вывода нашего списка, чуть дальше мы ее разберем:
1️⃣🔗 Теперь нам надо как-то вывести данные датасета:
⚙️ А вывод будет таким:
🔗 Но, но, еще один момент, мы можем вывести форму этого массива:
🔗 И вот такой будет вывод:
⚙️ Итак, что мы сегодня будем делать ⁉️ Мы будем обучать линейную регрессию на дате сете с ценами на дома в Калифорнии. Дата сет стандартный, поэтому включен в исходный код библиотеки Sklearn
0️⃣ Для начала напишем функцию, она нужна для удобного вывода нашего списка, чуть дальше мы ее разберем:
def ndprint(a, format_string = '{0:.2f'):
''' Функция для вывода наших списков'''
return [format_string.format(v,i) for i, v in enumerate(a)]1️⃣🔗 Теперь нам надо как-то вывести данные датасета:
from sklearn.datasets import fetch_california_housing
# Загружаем наш датасет
california_dataset = fetch_california_housing()
# Здесь мы извлечем данные (признаки или фичи)
features = california_dataset.data
print(features)
⚙️ А вывод будет таким:
{'data': array([[ 8.3252 , 41. , 6.98412698, ..., 2.55555556,
37.88 , -122.23 ],
[ 8.3014 , 21. , 6.23813708, ..., 2.10984183,
37.86 , -122.22 ],
[ 7.2574 , 52. , 8.28813559, ..., 2.80225989,
37.85 , -122.24 ],
...,
[ 1.7 , 17. , 5.20554273, ..., 2.3256351 ,
39.43 , -121.22 ],
[ 1.8672 , 18. , 5.32951289, ..., 2.12320917,
39.43 , -121.32 ],
[ 2.3886 , 16. , 5.25471698, ..., 2.61698113,
39.37 , -121.24 ]]), 'target': array([4.526, 3.585, 3.521, ..., 0.923, 0.847, 0.894]🔗 Но, но, еще один момент, мы можем вывести форму этого массива:
from sklearn.datasets import fetch_california_housing
# Загружаем датасет
california_dataset = fetch_california_housing()
# Извлекаем данные (признаки)
features = california_dataset.data
print(features.shape) # Проверка размера данных
🔗 И вот такой будет вывод:
(20640, 8)
❤🔥4👀1
Друзья, гайс, искренне спасибо, что следите за этим каналом, в Новом году мы будем развиваться еще больше ❤️
❤🔥7👍3
Друзья, привет! Пора за работу. Мы в прошлом году закончили вот тут и сегодня мы все эти знания возобновим и углубимся еще сильнее.
0️⃣⚙️ Напомню, что мы работали с датасетом о домах в Калифорнии (там у нас находились фичи или features — это признаки (в роли признаков могут выступать параметры которые влияют на цену нашей хаты в Калифорнии, будь то число комнат, возраст дома, плотность населения, расстояние до океана и всякое всякое) и целевые значения — y (это то. что нам и нужно предсказать)
🔗 К слову, вот что мы имеем, загружая датасет:
0️⃣⚙️ Напомню, что мы работали с датасетом о домах в Калифорнии (там у нас находились фичи или features — это признаки (в роли признаков могут выступать параметры которые влияют на цену нашей хаты в Калифорнии, будь то число комнат, возраст дома, плотность населения, расстояние до океана и всякое всякое) и целевые значения — y (это то. что нам и нужно предсказать)
🔗 К слову, вот что мы имеем, загружая датасет:
(MedInc: Средний доход в районе.
HouseAge: Средний возраст домов в районе
AveRooms: Среднее количество комнат на дом.
AveBedrms: Среднее количество спален на дом.
Population: Население района
AveOccup: Среднее количество жителей на дом
Latitude: Географическая широта.
Longitude: Географическая долгота
from sklearn.datasets import fetch_california_housing
from numpy.linalg import inv # Импортируем функцию inv для обратной матрицы
❤🔥2❤1
1️⃣🔗 Теперь, что касаемо загрузки датасета, california_dataset — это объект типа Bunch (мы такое с вами не проходили:
🔗 Что касаемо дополнительных атрибутов:
2️⃣ Извлекаем признаки:
🔗 Тут мы извлекаем матрицу признаков из объекта 🟰
🔗 Что представляет из себя 🟰
20640 домов и 8 фичей — это по сути размер нашего массива, его форма, для этого нужен атрибут
🔗 Вот вам еще один пример использования матрицы 🟰
Это объект, похожий на словарь, но с доступом к элементам в стиле атрибутов вместо пар ключ-значение. Объекты типа bunch используются для загрузки данных в библиотеке Scikit-Learn. Они представляют собой аналог словаря, но с возможностью динамического добавления и удаления атрибутов.
california_dataset = fetch_california_housing()
🔗 Что касаемо дополнительных атрибутов:
🟰.data — массив с признаками (многомерный массив, где каждая строка соответствует одному району, а каждый столбец — одному признаку).
🟰.target — целевая переменная (стоимость домов).
🟰.feature_names — список названий признаков.
🟰.DESCR — описание набора данных.
2️⃣ Извлекаем признаки:
🔗 Тут мы извлекаем матрицу признаков из объекта 🟰
california_dataset🟰 и сохраняем её в нашу переменную. features = california_dataset.data
🔗 Что представляет из себя 🟰
features🟰? Это двумерный массив или матрица, состоящий из 20640 домов и 8 фичей. Откуда мы взяли эти значения? Вот вам код ниже для собственной проверки:from sklearn.datasets import fetch_california_housing
# Загружаем датасет
california_dataset = fetch_california_housing()
# Извлекаем данные (признаки)
features = california_dataset.data
print(features.shape)
#Вывод:
#(20640, 8)
20640 домов и 8 фичей — это по сути размер нашего массива, его форма, для этого нужен атрибут
🟰.shape🟰🔗 Вот вам еще один пример использования матрицы 🟰
features🟰 (извлекаем признаки)from sklearn.datasets import fetch_california_housing
from numpy.linalg import inv
california_dataset = fetch_california_housing()
features = california_dataset.data
y = california_dataset.target
print(features[:2])
#Вывод:
'''
[[ 8.32520000e+00 4.10000000e+01 6.98412698e+00 1.02380952e+00
3.22000000e+02 2.55555556e+00 3.78800000e+01 -1.22230000e+02]
[ 8.30140000e+00 2.10000000e+01 6.23813708e+00 9.71880492e-01
2.40100000e+03 2.10984183e+00 3.78600000e+01 -1.22220000e+02]]
'''
❤4🥰1🤓1👨💻1
🧑💻 Гайс, добрый вечерочек всем, продолжаем жестко воркать! Мы остановились тут — в конце извлекли признаки из нашего датасета. Теперь извлекаем целевую переменную (у нас это 🟰
Так, че мы тут делаем? Мы извлекаем вектор целевых переменных (опять же, это те переменные, которые мы хотим предсказать) из объекта 🟰
🔗 y — это одномерный массив размерностью (20640, ), где каждое значение — это средняя стоимость домов в данном районе, округленная до тысяч долларов. Чтобы самому это вывести, вот вам код:
🔗 Если вы хотите попробовать вывести первые два значения. вот еще пример:
🔗✅ ЗАЧЕМ МЫ ИЗВЛЕКАЕМ 🟰
🔗 Хотелось бы еще добавить про 🟰
y🟰 — то, что мы и хотим предсказать). y = california_dataset.target
Так, че мы тут делаем? Мы извлекаем вектор целевых переменных (опять же, это те переменные, которые мы хотим предсказать) из объекта 🟰
california_dataset🟰. 🔗 y — это одномерный массив размерностью (20640, ), где каждое значение — это средняя стоимость домов в данном районе, округленная до тысяч долларов. Чтобы самому это вывести, вот вам код:
y = california_dataset.target
y.shape
'''
Вывод: (20640,)
'''
🔗 Если вы хотите попробовать вывести первые два значения. вот еще пример:
y = california_dataset.target
print(y[:2])
'''
Вывод: array([4.526, 3.585]) (Это значит, что в первом районе средняя стоимость домов примерно $4526, а во втором районе — $3585
'''
🔗✅ ЗАЧЕМ МЫ ИЗВЛЕКАЕМ 🟰
features🟰 И 🟰y🟰?⚙️ features (признаки) — это наши независимые переменные, которые используются для обучения модели
⚙️ y (целевая переменная) — это то, что мы хотим предсказать, используя признаки
🔗 Хотелось бы еще добавить про 🟰
shape🟰. Он возвращает кортеж, содержащий размеры массива (количество строк и столбцов). Вот пример:import numpy as np
array = np.array([[1, 2, 3], [4, 5, 6]])
print(array.shape)
'''
Вывол: (2,3) -- 2 строки и 3 столбца
'''
🥰2❤1
🧑💻 Так, хорошо, мы разобрались чут чут, разбираемся дальше...
🔗 В этом посте мы рассматривали такую функцию:
🔗 Так, че она делает? Ща разберем:
⚙️ ndprint — это пользовательская функция для форматирования списка чисел (у нас это коэффициенты модели)
⚙️ a — это массив или список чисел, например, веса w₁ и w₂
⚙️ format_string = '{0:.2f}' — строка формата, которая задаёт, как отобразить числа ( {0} — первое значение (число из массива), :.2f — округление числа до двух знаков после запятой (например, 0.514 станет 0.51))
⚙️ for i, v in enumerate(a) — enumerate(a) перебирает v (текущее число), i — индекс числа
🔗 В этом посте мы рассматривали такую функцию:
def ndprint(a, format_string = '{0:.2f'):
''' Функция для вывода наших списков'''
return [format_string.format(v,i) for i, v in enumerate(a)]
print('Аналитически определенные коэффициенты \n%s' % ndprint(w))🔗 Так, че она делает? Ща разберем:
⚙️ ndprint — это пользовательская функция для форматирования списка чисел (у нас это коэффициенты модели)
⚙️ a — это массив или список чисел, например, веса w₁ и w₂
⚙️ format_string = '{0:.2f}' — строка формата, которая задаёт, как отобразить числа ( {0} — первое значение (число из массива), :.2f — округление числа до двух знаков после запятой (например, 0.514 станет 0.51))
⚙️ for i, v in enumerate(a) — enumerate(a) перебирает v (текущее число), i — индекс числа
👍2❤🔥1🤯1
def ndprint(a, format_string = '{0:.2f'):
''' Функция для вывода наших списков'''
return [format_string.format(v,i) for i, v in enumerate(a)]
print('Аналитически определенные коэффициенты \n%s' % ndprint(w))🔗 Кароч, последняя строка выводит что-то такое: ['0.51', '0.02', '-0.18', '0.87', '0.00', '-0.00', '-0.06', '-0.02']
🔗 Таак, для начала, берем вот эту формулу 🟰 y = w₁ * x + w₀ * 1 = w₁ * x₁ + w₀ * x₀ 🟰 вот отсюда.
‼️ Повторюсь, но лишним не будет, Y — это целевое значение (то, что мы ищем, у нас это средняя стоимость хаты), наши иксы (x) — это входные признаки (число комнат), w₀ — это смещение (фиксированный базовый уровень предсказания), w₁ w₂ и другие 'вешки' — это коэффициенты весов для каждого признака (то, что мы и выводим).
ЧТО ЗНАЧАТ ЭТИ КОЭФФИЦИЕНТЫ?
‼️ Допустим, есть у нас 2 признака (то бишь иксы): X₁ — средний доход жителей района, X₂ — число комнат в доме, модель наша вычисляет такие коэффициенты — w₁ = 0.51 w₂ = 0.02
✅ Наша модельная формула будет иметь вид: Y = 0.51 * X₁ + 0.02 * X₂
⚙️ w₁ = 0.51 — если доход жителей района увеличится на единицу, средняя стоимость дома Y увеличится на 0.51
⚙️ w₂ = 0.02 — если число комнат увеличится на единицу, стоимость дома Y увеличится на
0.02
✅ Влияние первого признака (дохода) на стоимость дома намного сильнее, чем влияние второго признака (числа комнат)
1️⃣ Чем больше абсолютное значение коэффициента w, тем больше влияние этого признака на предсказание
2️⃣ Если w = 0, это значит, что признак никак не влияет на 𝑌
❤🔥3❤1👍1
🧑💻 Выкладываю весь код гайс 🔽🔽🔽
⚙️ Вывод:
def ndprint(a, format_string = '{0:.2f}'):
''' Функция для вывода наших списков'''
return [format_string.format(v,i) for i, v in enumerate(a)]
from sklearn.datasets import fetch_california_housing
from numpy.linalg import inv
import numpy as np
california_dataset = fetch_california_housing()
features = california_dataset.data
y = california_dataset.target
w = inv(
(features.T).dot(features)
).dot(
features.T
).dot(
y
)
print('Аналитически определенные коэффициенты \n%s' % ndprint(w))⚙️ Вывод:
Аналитически определенные коэффициенты
['0.51', '0.02', '-0.18', '0.87', '0.00', '-0.00', '-0.06', '-0.02']
❤🔥3👍1🤯1🤓1
⚙️ Друзья, привет! Выполняем ДЗ с курса. Итак, че нам нам нужно сделать? Все, о чем мы писали, нам сильно пригодится.
🔗 У нас есть 2 набора данных точек:
📈 Какие у нас задачи?
⭕️ Визуализировать набор точек: Построить график
для данных
⭕️ Построить коэффициенты регрессии 🟰w₀, w₁🟰, выполнить пошаговый процесс вычисления коэффициентов линейной регрессии.
⭕️ Рассчитать предсказания в виде 🟰y =w₀ + w₁. * x🟰 на одном графике с точками и визуализировать.
✅ Наши данные:
x_hw = np.array([50, 60, 70, 100])
y_hw = np.array([10, 15, 40, 45])
🔗 У нас есть 2 набора данных точек:
🟰x_hw 🟰 и 🟰y_hw🟰📈 Какие у нас задачи?
⭕️ Визуализировать набор точек: Построить график
для данных
🟰x_hw 🟰 и 🟰y_hw🟰.⭕️ Построить коэффициенты регрессии 🟰w₀, w₁🟰, выполнить пошаговый процесс вычисления коэффициентов линейной регрессии.
⭕️ Рассчитать предсказания в виде 🟰y =w₀ + w₁. * x🟰 на одном графике с точками и визуализировать.
✅ Наши данные:
x_hw = np.array([50, 60, 70, 100])
y_hw = np.array([10, 15, 40, 45])
❤2🤯1
0️⃣🔗 Итак, ну для начала импортируем библиотеки:
1️⃣ Теперь объявим массивы наших данных:
⚙️ Можем даже визуализировать (ВЫВОД №1) то, что получили, хотя бы для понимания:
import numpy as np
import matplotlib.pyplot as plt
1️⃣ Теперь объявим массивы наших данных:
x_hw = np.array([50, 60, 70 100]) # независимые переменные (по оси X)
y_hw = np,array([10, 15, 40, 45]) # зависимые переменные (по оси Y)
⚙️ Можем даже визуализировать (ВЫВОД №1) то, что получили, хотя бы для понимания:
import numpy as np
import matplotlib.pyplot as plt
x_hw = np.array([50, 60, 70, 100])
y_hw = np.array([10, 15, 40, 45])
plt.scatter(x_hw, y_hw):
❤🔥1🥰1🤯1
2️⃣🔗 Работаем над визуалом наших данных:
3️⃣⚙️ Вычисляем коэффициенты:
😋 Кароч, какие я могу дать комментарии: Мы взяли и присвоили к переменным x_mean и y_mean функции np.mean (вычисляет среднее значение элементов в массиве). 🔗Теперь берем и прописываем формулу:
plt.scatter(x_hw, y_hw, color='blue', label='Точки данных') # Строит график
plt.xlabel('x_hw') # Эта и строка ниже подписывает оси
plt.ylabel('y_hw')
plt.title('Данные') # Добавляет заголовок
plt.legend() # Показывает обозначение точки данных
plt.grid() # Добавляет сетку
plt.show() # Показывает сам график
3️⃣⚙️ Вычисляем коэффициенты:
n = len(x_hw) # Количество точек данных
x_mean = np.mean(x_hw) # Средние значения для X и Y
y_mean = np.mean(y_hw)
😋 Кароч, какие я могу дать комментарии: Мы взяли и присвоили к переменным x_mean и y_mean функции np.mean (вычисляет среднее значение элементов в массиве). 🔗Теперь берем и прописываем формулу:
w1 = np.sum((x_hw - x_mean) * (y_hw - y_mean)) / np.sum((x_hw - x_mean) ** 2)
w0 = y_mean - w1 * x_mean
# w1 -- Указывает наклон линии
# w0 -- Сдвиг нашей линии
# Вывод: w0 = -22.50, w1 = 0.71
👍2🤯1
✅4️⃣ Правда немножка остается, строим линию регрессии:
🔗 Функция predict рассчитывает зависимую переменную y для любого значения x (у нас их целых 100). Почему 100? Отвечаю: смотрим две последние строки, np.linspace создает массив из равномерно распределённых значений в диапазоне от 50 до 100 (от min(x_hw) до max(x_hw)) — как раз будет 100 значений по умолчанию. Теперь вопрос: что это за значения и что делает y_line?
‼️ Отвечаю: тут применяем функцию predict — когда мы передаем массив из 100 значений x, она рассчитывает y для каждого x по формуле y = w0 + w1 * x. По итогу мы получаем 100 предсказанных значений. Так почему 100 и зачем это нужно? Эти 100 точек используются для построения гладкой линии регрессии.
5️⃣ Визуализация линии регрессии
🔗 Функция predict рассчитывает зависимую переменную y для любого значения x (у нас их целых 100). Почему 100? Отвечаю: смотрим две последние строки, np.linspace создает массив из равномерно распределённых значений в диапазоне от 50 до 100 (от min(x_hw) до max(x_hw)) — как раз будет 100 значений по умолчанию. Теперь вопрос: что это за значения и что делает y_line?
‼️ Отвечаю: тут применяем функцию predict — когда мы передаем массив из 100 значений x, она рассчитывает y для каждого x по формуле y = w0 + w1 * x. По итогу мы получаем 100 предсказанных значений. Так почему 100 и зачем это нужно? Эти 100 точек используются для построения гладкой линии регрессии.
def predict(x):
return w0 + w1 * x
x_line = np.linspace(min(x_hw), max(x_hw))
y_line = predict(x_line)
5️⃣ Визуализация линии регрессии
plt.scatter(x_hw, y_hw, color='blue', label='Точки данных') # исходные точки
plt.plot(x_line, y_line, color='red', label='Линия регрессии') # Сама линия регрессии
plt.xlabel('x_hw')
plt.ylabel('y_hw')
plt.title('Линейная регрессия')
plt.legend()
plt.grid()
plt.show()
🥰3
🧑💻 Гайс, привет! Сегодня разберем 🔗МЕТРИКИ КАЧЕСТВА🔗. Че это такое вообще? Кароч, обучили модель, и как раз тут выступают метрики качества — это такие показатели, которые нужны для оценки того, насколько хорошо модель справляется с задачей. 🆘 Без метрик качества обучение моделей теряет всякий смысл, так как мы не можем понять, какая модель лучше.
✅ Разберем самые основные метрики качества: 1️⃣ среднеквадратичная ошибка (MSE). 2️⃣ средняя ошибка, 3️⃣ метрика R²
0️⃣⚙️ Так, для начала импортируем датасет (датасет у нас о ценах на дома в Калифорнии):
1️⃣ Загружаем датасет в переменную (наш датасет кстати состоит из 2 основных частей:
🔗 data — таблица с признаками (фичами, features) — входные данные для обучения модели.
🔗 target — целевая переменная (как раз то, что и пытаемся предсказать) — у нас это средняя цена дома в районе
2️⃣ Дальше создаем 2 переменные, как раз для наших новых двух частей — data, target.
‼️ Каждая строка в 🟰
‼️ В то же время y — это массив с целевой переменной (цены на хаты), которые мы и хотим предсказать.
3️⃣ Дело за малым, обучаем модель:
🔗 LinearRegression() — представляет собой модель линейной регрессии из импортированной библиотеки 🟰
🔗 Линейная регрессия строит линейную зависимость между признаками X (у нас это features), она как раз ищет коэффициенты w0, w1, ну вы поняли)
🔗 .fit(features, y) — обучаем модель на наших данных
4️⃣ Теперь получаем 2 вектора — наше целевое значение (⁻y) и истинное значение (y)
5️⃣ Этот этап не сильно нужен, просто на нем я хочу пока что закончить и вывести то, что получилось:
✅ Весь код:
✅ Разберем самые основные метрики качества: 1️⃣ среднеквадратичная ошибка (MSE). 2️⃣ средняя ошибка, 3️⃣ метрика R²
0️⃣⚙️ Так, для начала импортируем датасет (датасет у нас о ценах на дома в Калифорнии):
from sklearn.datasets import fetch_california_housing
1️⃣ Загружаем датасет в переменную (наш датасет кстати состоит из 2 основных частей:
🔗 data — таблица с признаками (фичами, features) — входные данные для обучения модели.
🔗 target — целевая переменная (как раз то, что и пытаемся предсказать) — у нас это средняя цена дома в районе
california_dataset = fetch_california_housing()
2️⃣ Дальше создаем 2 переменные, как раз для наших новых двух частей — data, target.
‼️ Каждая строка в 🟰
features🟰 может представлять район, а столбцы — средний доход в районе / количество комнат / средний возраст построек.‼️ В то же время y — это массив с целевой переменной (цены на хаты), которые мы и хотим предсказать.
features = california_dataset.data
y = california_dataset.target
3️⃣ Дело за малым, обучаем модель:
reg = LinearRegression().fit(features, y)
🔗 LinearRegression() — представляет собой модель линейной регрессии из импортированной библиотеки 🟰
scikit-learn🟰🔗 Линейная регрессия строит линейную зависимость между признаками X (у нас это features), она как раз ищет коэффициенты w0, w1, ну вы поняли)
🔗 .fit(features, y) — обучаем модель на наших данных
4️⃣ Теперь получаем 2 вектора — наше целевое значение (⁻y) и истинное значение (y)
y_pred = reg.predict(features) # Предсказанные значения
y_true = y # Истинное значение
5️⃣ Этот этап не сильно нужен, просто на нем я хочу пока что закончить и вывести то, что получилось:
print("Форма признаков (features):", features.shape)
print("Форма целевой переменной (y):", y.shape)
print("Первые 5 строк признаков:\n", features[:3])
print("Первые 5 значений целевой переменной:\n", y[:3])
print("Коэффициенты модели:\n", reg.coef_)
print("Свободный член (w0):", reg.intercept_)✅ Весь код:
from sklearn.datasets import fetch_california_housing
from sklearn.linear_model import LinearRegression
california_dataset = fetch_california_housing()
features = california_dataset.data
y = california_dataset.target
reg = LinearRegression().fit(features, y)
y_pred = reg.predict(features) # Предсказанные значения
y_true = y # Истинное значение
print("Форма признаков (features):", features.shape)
print("Форма целевой переменной (y):", y.shape)
print("Первые 5 строк признаков:\n", features[:3])
print("Первые 5 значений целевой переменной:\n", y[:3])
print("Коэффициенты модели:\n", reg.coef_)
print("Свободный член (w0):", reg.intercept_)
❤🔥2👍1🤯1