Вопрос проверяет знание основных алгоритмов машинного обучения, применяемых для задач регрессии, и понимание их различий.
Регрессия — это задача предсказания непрерывной числовой переменной на основе входных признаков. Существует множество алгоритмов, каждый из которых подходит для разных типов данных и задач.
from sklearn.linear_model import LinearRegression
from sklearn.ensemble import RandomForestRegressor
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
# Пример данных
X, y = [[1], [2], [3], [4]], [2, 4, 6, 8]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# Линейная регрессия
lr = LinearRegression()
lr.fit(X_train, y_train)
predictions_lr = lr.predict(X_test)
print('MSE Linear:', mean_squared_error(y_test, predictions_lr))
# Случайный лес
rf = RandomForestRegressor(n_estimators=100)
rf.fit(X_train, y_train)
predictions_rf = rf.predict(X_test)
print('MSE Random Forest:', mean_squared_error(y_test, predictions_rf))Выбор метода регрессии зависит от размера данных, линейности зависимостей и требований к интерпретируемости. Линейная регрессия проста и понятна, случайный лес и бустинг дают высокую точность, а нейронные сети подходят для сложных задач с большими данными.