This repository examines the basic linear regression model of deeplearning.ai
Этот код реализует простую линейную регрессию для моделирования зависимости цены жилья от площади, используя Python и библиотеки NumPy и Matplotlib.
import numpy as np — импортирует библиотеку NumPy, которая используется для работы с массивами и математическими операциями.
import matplotlib.pyplot as plt — импортирует модуль pyplot из библиотеки Matplotlib для построения графиков.
x_train = np.array([1.0, 2.0]) — создаёт массив входных данных (площадей домов в тысячах квадратных футов).
y_train = np.array([300.0, 500.0]) — создаёт массив целевых значений (цен домов в тысячах долларов).
print(f"x_train = {x_train}") — выводит значения массива x_train.
print(f"y_train = {y_train}") — выводит значения массива y_train.
print(f"x_train.shape = {x_train.shape}") — выводит форму (размер) массива x_train.
m = x_train.shape — присваивает переменной m количество обучающих примеров из первого измерения массива.
print(f"number of training examples is: {m}") — выводит количество обучающих примеров.
m = len(x_train) — альтернативный способ получить количество элементов массива x_train.
print(f"number of training examples is: {m}") — снова выводит количество обучающих примеров.
i = 0 — индекс нулевого элемента для выборки одного примера.
x_i = x_train[i] — выбирает значение площади первого дома.
y_i = y_train[i] — выбирает цену первого дома.
print(f"(x^({i}), y^({i})) = ({x_i}, {y_i})") — выводит выбранную пару данных как обучающий пример.
plt.scatter(x_train, y_train, marker='x', c='r') — строит рассеянный график (scatter plot) исходных данных, где точки показывают реальные цены относительно площадей.
plt.title("Housing prices") — задаёт заголовок графика.
plt.ylabel('price (in 1000s of dollars)') — задаёт подпись оси Y: цены домов.
plt.xlabel('size (1000 sqft)') — задаёт подпись оси X: площади домов.
plt.show() — отображает график на экране.
w = 200 — коэффициент (наклон) линейной модели: цена за 1 тысячу квадратных футов.
b = 100 — свободный член (сдвиг): базовая цена при нулевой площади.
print(f"w: {w}") — выводит значение коэффициента w.
print(f"b: {b}") — выводит значение свободного члена b.
def compute_model_output(x, w, b): — объявляет функцию, вычисляющую значения модели для входных данных.
m = x.shape — определяет количество примеров.
f_wb = np.zeros(m) — создаёт массив нулей для хранения предсказаний.
for i in range(m): f_wb[i] = w * x[i] + b — для каждого примера вычисляет предсказание по формуле f w b
w x + b f wb =wx+b.
return f_wb — возвращает массив предсказаний.
tmp_f_wb = compute_model_output(x_train, w, b) — вычисляет предсказания модели на обучающих данных.
plt.plot(x_train, tmp_f_wb, c='b', label='Our Prediction') — строит линию предсказаний модели.
plt.scatter(x_train, y_train, marker='x', c='r', label='Actual Values') — строит фактические значения для сравнения.
plt.title("Housing Prices") — добавляет заголовок.
plt.ylabel('Price (in 1000s of dollars)') — задаёт подпись оси Y.
plt.xlabel('Size (1000 sqft)') — задаёт подпись оси X.
plt.legend() — выводит легенду для разных линий/точек.
plt.show() — показывает итоговый график.
w = 200 — переустанавливает коэффициент наклона.
b = 100 — переустанавливает свободный член.
x_i = 1.2 — выбирает новую площадь (например, 1200 sqft).
cost_1200sqft = w * x_i + b — вычисляет прогнозируемую стоимость для этой площади.
print(f"${cost_1200sqft:.0f} thousand dollars") — выводит итоговую стоимость в тысячах долларов без дробной части.