# 6 вариант # Данные: make_classification (n_samples=500, n_features=2, # n_redundant=0, n_informative=2, random_state=rs, n_clusters_per_class=1) # Модели: # · Линейная регрессия # · Полиномиальная регрессия (со степенью 4) # · Гребневая полиномиальная регрессия (со степенью 4, alpha = 1.0) import numpy as np import matplotlib.pyplot as plt from matplotlib.colors import ListedColormap from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression, LinearRegression from sklearn.preprocessing import PolynomialFeatures, StandardScaler from sklearn.pipeline import make_pipeline from sklearn.datasets import make_moons, make_circles, make_classification from sklearn.neural_network import MLPClassifier from sklearn.linear_model import Ridge # Задаем параметры генерации данных n_samples = 500 n_features = 2 n_redundant = 0 n_informative = 2 random_state = 42 n_clusters_per_class = 1 def main(): # Генерация данных X, y = make_classification(n_samples=n_samples, n_features=n_features, n_redundant=n_redundant, n_informative=n_informative, random_state=random_state, n_clusters_per_class=n_clusters_per_class) # Тестовая и обучающая выборки X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.65, random_state=random_state) # Создание моделей linear_regression(X_train, X_test, y_train, y_test) polin_regression_4(X_train, X_test, y_train, y_test) gr_polin_regression_4(X_train, X_test, y_train, y_test) # Создание линейной регрессии def linear_regression(X_train, X_test, y_train, y_test): linear_regression = LogisticRegression() linear_regression.fit(X_train, y_train) linear_regression_score = linear_regression.score(X_train, y_train) linear_pred = linear_regression.predict(X_test) plt.scatter(X_test[:, 0], X_test[:, 1], c=linear_pred, cmap="bwr") plt.title("Линейная регрессия") plt.xlabel("Признак 1") plt.ylabel("Признак 2") plt.show() print("Линейная регрессия: {}".format(linear_regression_score)) #Создание полиномиальной регрессии со степенью 4 def polin_regression_4(X_train, X_test, y_train, y_test): poly_regression = make_pipeline(PolynomialFeatures(degree=4), LogisticRegression()) poly_regression.fit(X_train, y_train) polynomial_regression_score = poly_regression.score(X_train, y_train) poly_pred = poly_regression.predict(X_test) plt.scatter(X_test[:, 0], X_test[:, 1], c=poly_pred, cmap="bwr") plt.title("Полиномиальная регрессия") plt.xlabel("Признак 1") plt.ylabel("Признак 2") plt.show() print("Полиномиальная регрессия: {}".format(polynomial_regression_score)) #Создание гребневой полиномиальной регрессии со степенью 4 и alpha = 1.0 def gr_polin_regression_4(X_train, X_test, y_train, y_test): ridge_regression = make_pipeline(PolynomialFeatures(degree=4), Ridge(alpha=1.0)) ridge_regression.fit(X_train, y_train) ridge_regression_score = ridge_regression.score(X_train, y_train) ridge_pred = ridge_regression.predict(X_test) plt.scatter(X_test[:, 0], X_test[:, 1], c=ridge_pred, cmap="bwr") plt.title("Гребневая полиномиальная регрессия") plt.xlabel("Признак 1") plt.ylabel("Признак 2") plt.show() print("Гребневая полиномиальная регрессия: {}".format(ridge_regression_score)) main()