LinearRegression
LinearRegression — простая модель регрессии. Она используется, когда нужно предсказать числовое значение.
Например, можно предсказывать цену квартиры по ее площади. Обычно чем больше площадь, тем выше цена. Линейная регрессия пытается приблизить такую зависимость прямой линией.
Идея модели
Заголовок раздела «Идея модели»Если есть один признак x, линейная регрессия использует знакомую формулу прямой:
y = a * x + b
Но в машинном обучении главное не сама формула, а то, как находятся числа a и b.
Здесь:
x — признак, например площадь квартиры;
y — предсказываемое значение, например цена;
a и b — параметры модели, которые подбираются во время обучения.
До обучения модель не знает, какую прямую нужно провести. Она получает примеры: площади квартир и их реальные цены. Затем модель подбирает такую прямую, чтобы её предсказания были как можно ближе к правильным ответам.
На графике обучающие данные выглядят как точки, а обученная модель — как прямая, которая проходит не обязательно через все точки, но старается пройти рядом с ними.
Пример регрессии
Заголовок раздела «Пример регрессии»В этом примере модель учится предсказывать цену квартиры по площади.
uses MLABC, PlotML;
begin var df := DataFrame.FromCsvText(''' Площадь,Цена 35,4.8 42,5.7 50,7.9 58,7.9 65,8.2 72,10.4 80,10.5 90,12.5 ''');
var X := df.ToMatrix(['Площадь']); var y := df.ToVector('Цена');
var model := new LinearRegression; model.Fit(X, y);
var example := Vector([70.0]); var pred := model.PredictOne(example);
Println('Площадь:', example[0]:0:0); Println('Предсказанная цена:', pred:0:2);
Plot.Title := 'Линейная регрессия'; Plot.XLabel := 'Площадь'; Plot.YLabel := 'Цена';
Plot.Points(X.Col(0), y);
var line := model.RegressionLine; Plot.Line(line.K, line.B, Colors.Red);
Plot.Point(example[0], pred, Colors.Black, size := 8);end.Вывод:
Площадь: 70Предсказанная цена: 9.61Программа также строит график:
Черная точка на графике показывает новую квартиру, для которой модель предсказала цену. Красная линия показывает зависимость, которую нашла модель.
Разбор программы
Заголовок раздела «Разбор программы»- Создается таблица с площадью и ценой квартир.
- Столбец
Площадьпреобразуется в матрицу признаковX. - Столбец
Ценастановится целевой переменнойy. - Модель обучается вызовом
model.Fit(X, y). - Для квартиры площадью
70модель предсказывает цену.
Когда использовать
Заголовок раздела «Когда использовать»LinearRegression хорошо подходит, когда зависимость примерно похожа на прямую линию.
Примеры:
- цена квартиры примерно растет с площадью;
- время выполнения задачи растет с размером входных данных;
- расход материала растет с длиной или площадью изделия.
Преимущества
Заголовок раздела «Преимущества»- модель простая и быстрая;
- результат легко объяснить;
- хорошо подходит для первого знакомства с регрессией.
Ограничения
Заголовок раздела «Ограничения»- плохо описывает сложные нелинейные зависимости;
- чувствительна к выбросам;
- все признаки должны быть числовыми.
Что дальше
Заголовок раздела «Что дальше»После первой модели регрессии важно научиться честно оценивать ее качество. Для этого используют метрики MAE, MSE, RMSE и R2 Score.