import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.neural_network import MLPClassifier, MLPRegressor
from sklearn.metrics import accuracy_score, r2_score, mean_squared_error
# =========================
# 1. КЛАССИФИКАЦИЯ IRIS
# =========================
iris_url = "https://gist.githubusercontent.com/netj/8836201/raw/6f9306ad21398ea43cba4f7d537619d0e07d5ae3/iris.csv"
iris = pd.read_csv(iris_url)
print("Первые строки датасета Iris:")
print(iris.head())
print()
# признаки
X_iris = iris.drop("variety", axis=1)
# целевая переменная
y_iris = iris["variety"]
# разделение на обучение и тест
X_train, X_test, y_train, y_test = train_test_split(
X_iris,
y_iris,
test_size=0.2,
random_state=123
)
# создание модели классификации
mlp_classifier = MLPClassifier(
hidden_layer_sizes=(10,),
max_iter=1000,
random_state=123
)
# обучение модели
mlp_classifier.fit(X_train, y_train)
# предсказание
y_pred = mlp_classifier.predict(X_test)
# точность
accuracy = accuracy_score(y_test, y_pred)
print("===== MLPClassifier =====")
print("Точность модели:", accuracy)
print("Loss:", mlp_classifier.loss_)
print("Количество слоев весов:", len(mlp_classifier.coefs_))
print("Формы весов:", [w.shape for w in mlp_classifier.coefs_])
print("Количество intercepts:", len(mlp_classifier.intercepts_))
print("Количество итераций:", mlp_classifier.n_iter_)
print("Функция активации выходного слоя:", mlp_classifier.out_activation_)
print()
# =========================
# 2. РЕГРЕССИЯ SALARY
# =========================
salary_url = "https://raw.githubusercontent.com/AnnaShestova/salary-years-simple-linear-regression/master/Salary_Data.csv"
salary = pd.read_csv(salary_url)
print("Первые строки датасета Salary:")
print(salary.head())
print()
# признаки
X_salary = salary[["YearsExperience"]]
# целевая переменная
y_salary = salary["Salary"]
# разделение на обучение и тест
X_train, X_test, y_train, y_test = train_test_split(
X_salary,
y_salary,
test_size=0.2,
random_state=123
)
# создание модели регрессии
mlp_regressor = MLPRegressor(
hidden_layer_sizes=(10,),
max_iter=3000,
random_state=123
)
# обучение модели
mlp_regressor.fit(X_train, y_train)
# предсказание
y_pred = mlp_regressor.predict(X_test)
# метрики
r2 = r2_score(y_test, y_pred)
mse = mean_squared_error(y_test, y_pred)
print("===== MLPRegressor =====")
print("R2 модели:", r2)
print("MSE модели:", mse)
print("Loss:", mlp_regressor.loss_)
print("Количество слоев весов:", len(mlp_regressor.coefs_))
print("Формы весов:", [w.shape for w in mlp_regressor.coefs_])
print("Количество intercepts:", len(mlp_regressor.intercepts_))
print("Количество итераций:", mlp_regressor.n_iter_)
print("Функция активации выходного слоя:", mlp_regressor.out_activation_)