Compare commits
No commits in common. "d0fbf61dc024d1acb4dc3fa97da13dc1f3b1cffb" and "4daf83316773518757a7f1e389ce3cb57a13fafa" have entirely different histories.
d0fbf61dc0
...
4daf833167
Binary file not shown.
Before Width: | Height: | Size: 63 KiB |
@ -1,28 +0,0 @@
|
||||
### Вариант 9
|
||||
### Задание на лабораторную работу:
|
||||
По данным, построить графики 3 моделей:
|
||||
- Персептрон
|
||||
- Многослойный персептрон с 10-ю нейронами в скрытом слое (alpha = 0.01)
|
||||
- Многослойный персептрон с 100-а нейронами в скрытом слое (alpha = 0.01)
|
||||
|
||||
Данные: make_classification (n_samples=500, n_features=2, n_redundant=0, n_informative=2, random_state=rs, n_clusters_per_class=1)
|
||||
|
||||
### Как запустить лабораторную работу:
|
||||
Выполняем файл gusev_vladislav_lab_1.py, на экране будет нарисовано 3 графика
|
||||
|
||||
### Технологии
|
||||
NumPy - библиотека для работы с многомерными массивами. Mathplotlib - библиотека для визуализации данных двумерной и трехмерной графикой. Sklearn - библиотека с большим количеством алгоритмов машинного обучения.
|
||||
|
||||
### По коду
|
||||
Используем функцию make_classification, чтобы сгенерировать 500 примеров с 2 признаками. Дополнительные параметры определяют характеристики данных, такие как количество информативных признаков и случайное распределение классов.
|
||||
|
||||
С помощью train_test_split разделяем данные на обучающую и тестовую выборки в соотношении 70% к 30%.
|
||||
|
||||
Далее создаются 3 модели: персептрон, многослойный персептрон с 10 нейронами в скрытом слое и многослойный персептрон с 100 нейронами в скрытом слое.Модели обучаются на обучающих данных с использованием метода fit.
|
||||
|
||||
Обученные модели используются для предсказания классов на тестовых данных с помощью метода predict.
|
||||
Затем с помощью accuracy_score оцениваем точности предсказаний моделей на тестовом наборе данных.
|
||||
|
||||
Далее создаем графики для каждой модели, где каждая точка данных отображается на графике с цветом, соответствующим предсказанному классу. В заголовках написана точность для каждой модели. Отображаем графики с помощью plt.show().
|
||||
|
||||
Полученные графики: ![Figure_1.png](Figure_1.png)
|
@ -1,55 +0,0 @@
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
from sklearn.datasets import make_classification
|
||||
from sklearn.linear_model import Perceptron
|
||||
from sklearn.neural_network import MLPClassifier
|
||||
from sklearn.model_selection import train_test_split
|
||||
from sklearn.metrics import accuracy_score
|
||||
|
||||
# Создание искусственных данных
|
||||
rs = np.random.RandomState(42)
|
||||
#n_samples - число примеров, n_features - признаки, n_redindant - лишние признаки, n_informative - информативные признаки
|
||||
#random_state - rs для воспроизводимости данных, n_clusters_per_class - 1 кластер классов
|
||||
X, y = make_classification(n_samples=500, n_features=2, n_redundant=0, n_informative=2, random_state=rs, n_clusters_per_class=1)
|
||||
|
||||
# Разделение данных на обучающий и тестовый наборы
|
||||
#test_size=0.3 - 30% тестов
|
||||
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=rs)
|
||||
|
||||
# Модель персептрона
|
||||
perceptron = Perceptron()
|
||||
perceptron.fit(X_train, y_train)
|
||||
y_pred_perceptron = perceptron.predict(X_test)
|
||||
accuracy_perceptron = accuracy_score(y_test, y_pred_perceptron)
|
||||
|
||||
# Модель многослойного персептрона с 10 нейронами
|
||||
mlp_10 = MLPClassifier(hidden_layer_sizes=(10,), alpha=0.01, random_state=rs)
|
||||
mlp_10.fit(X_train, y_train)
|
||||
y_pred_mlp_10 = mlp_10.predict(X_test)
|
||||
accuracy_mlp_10 = accuracy_score(y_test, y_pred_mlp_10)
|
||||
|
||||
# Модель многослойного персептрона с 100 нейронами
|
||||
mlp_100 = MLPClassifier(hidden_layer_sizes=(100,), alpha=0.01, random_state=rs)
|
||||
mlp_100.fit(X_train, y_train)
|
||||
y_pred_mlp_100 = mlp_100.predict(X_test)
|
||||
accuracy_mlp_100 = accuracy_score(y_test, y_pred_mlp_100)
|
||||
|
||||
# Визуализация данных
|
||||
plt.figure(figsize=(12, 4))
|
||||
|
||||
# Персептрон
|
||||
plt.subplot(131)
|
||||
plt.scatter(X_test[:, 0], X_test[:, 1], c=y_pred_perceptron, cmap=plt.cm.Paired)
|
||||
plt.title(f'Персептрон (Точность: {accuracy_perceptron:.2f})')
|
||||
|
||||
# Многослойный персептрон с 10 нейронами
|
||||
plt.subplot(132)
|
||||
plt.scatter(X_test[:, 0], X_test[:, 1], c=y_pred_mlp_10, cmap=plt.cm.Paired)
|
||||
plt.title(f'MLP (10 нейронов) (Точность: {accuracy_mlp_10:.2f})')
|
||||
|
||||
# Многослойный персептрон с 100 нейронами
|
||||
plt.subplot(133)
|
||||
plt.scatter(X_test[:, 0], X_test[:, 1], c=y_pred_mlp_100, cmap=plt.cm.Paired)
|
||||
plt.title(f'MLP (100 нейронов) (Точность: {accuracy_mlp_100:.2f})')
|
||||
|
||||
plt.show()
|
Loading…
Reference in New Issue
Block a user