import matplotlib.pyplot as plt from sklearn.datasets import make_moons from sklearn.linear_model import LinearRegression, Ridge from sklearn.preprocessing import PolynomialFeatures # Генерируем данные rs = 42 X, y = make_moons(noise=0.3, random_state=rs) # Линейная регрессия lr = LinearRegression() lr.fit(X, y) lr_score = lr.score(X, y) # Полиномиальная регрессия poly = PolynomialFeatures(degree=5) X_poly = poly.fit_transform(X) lr_poly = LinearRegression() lr_poly.fit(X_poly, y) lr_poly_score = lr_poly.score(X_poly, y) # Гребневая регрессия ridge = Ridge(alpha=1.0) ridge.fit(X_poly, y) ridge_score = ridge.score(X_poly, y) # Выводим результаты print(f'Линейная регрессия: {lr_score}') print(f'Полиномиальная регрессия: {lr_poly_score}') print(f'Гребневая регрессия: {ridge_score}') # Построение графиков plt.figure(figsize=(12, 6)) plt.subplot(141) plt.scatter(X[:, 0], X[:, 1], c=y) plt.title('Данные') plt.subplot(142) plt.scatter(X[:, 0], lr.predict(X), c=y) plt.title('Линейная регрессия') plt.subplot(143) plt.scatter(X[:, 0], ridge.predict(X_poly), c=y) plt.title('Гребневая регрессия') # Добавляем график с полиномиальной регрессией plt.subplot(144) plt.scatter(X[:, 0], lr_poly.predict(X_poly), c=y) plt.title('Полиномиальная регрессия') plt.tight_layout() plt.show()