Merge pull request 'zavrazhnova_svetlana_lab_6' (#97) from zavrazhnova_svetlana_lab_6 into main
Reviewed-on: http://student.git.athene.tech/Alexey/IIS_2023_1/pulls/97
This commit is contained in:
commit
3e08abf42b
28
zavrazhnova_svetlana_lab_6/README.md
Normal file
28
zavrazhnova_svetlana_lab_6/README.md
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
# Задание
|
||||||
|
Использовать нейронную сеть MLPClassifier для данных из файла `fraud_dataset.csv`, для задачи: Предсказать, является ли транзакция мошеннической или нет на основе имеющихся данных.
|
||||||
|
### Как запустить лабораторную работу:
|
||||||
|
ЛР запускается в файле zavrazhnova_svetlana_lab_6.py через Run, а затем в консоли должны появится вычисления
|
||||||
|
|
||||||
|
### Технологии
|
||||||
|
Библиотека sklearn.neuralnetwork содержит реализацию MLP (Multilayer Perceptron) - это алгоритм искусственного нейронного сети для классификации и регрессии.
|
||||||
|
Классификатор MLPClassifier является реализацией многослойного перцептрона для задач классификации.
|
||||||
|
|
||||||
|
Библиотека sklearn.metrics содержит различные метрики для оценки качества моделей машинного обучения. В данном случае, используются следующие метрики:
|
||||||
|
- accuracyscore - точность модели, которая показывает долю правильно классифицированных объектов.
|
||||||
|
- confusionmatrix - матрица ошибок, которая показывает количество правильно и неправильно классифицированных объектов для каждого класса.
|
||||||
|
- classificationreport - отчет о классификации, который содержит информацию о точности, полноте, F1-мере и поддержке для каждого класса.
|
||||||
|
|
||||||
|
### Что делает лабораторная:
|
||||||
|
Создает и обучает модель нейронной сети с помощью MLPClassifier. Оценивает точность модели с помощью функции accuracy_score(). Строит матрицу ошибок и выводит отчет о классификации
|
||||||
|
|
||||||
|
### Пример выходных значений:
|
||||||
|
![result.png](result.png)
|
||||||
|
|
||||||
|
### Вывод
|
||||||
|
Модель MLPClassifier, обученная на данных из файла fraud_dataset.csv, показывает высокую точность в предсказании мошеннических и не мошеннических транзакций.
|
||||||
|
Об этом говорят результаты вычислений:
|
||||||
|
- Accuracy: 1.0 - это показатель точности модели, который равен 1.0, что означает 100% точность модели в предсказании мошеннических и не мошеннических транзакций на тестовой выборке.
|
||||||
|
|
||||||
|
- Confusion Matrix: матрица ошибок, показывающая количество верно и неверно классифицированных транзакций. В данном случае, видим, что все 17 не мошеннических транзакций были правильно предсказаны, а одна мошенническая транзакция была неправильно предсказана.
|
||||||
|
|
||||||
|
- Classification Report: отчет о классификации, который содержит информацию о точности, полноте (recall), F1-мере и поддержке (support) для каждого класса. Из отчета видно, что как для класса 0 (не мошенническая транзакция), так и для класса 1 (мошенническая транзакция), точность, полнота и F1-мера равны 1.0, что говорит о идеальной предсказательной способности модели для обоих классов. Поддержка указывает на количество образцов в каждом классе в тестовой выборке.
|
87
zavrazhnova_svetlana_lab_6/fraud_dataset.csv
Normal file
87
zavrazhnova_svetlana_lab_6/fraud_dataset.csv
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
transaction_id,transaction_amount,location,merchant,age,gender,fraud_label
|
||||||
|
1,1000.00,New York,ABC Corp,35,M,0
|
||||||
|
2,500.00,Chicago,XYZ Inc,45,F,0
|
||||||
|
3,2000.00,Los Angeles,ABC Corp,28,M,1
|
||||||
|
4,1500.00,San Francisco,XYZ Inc,30,F,0
|
||||||
|
5,800.00,Chicago,ABC Corp,50,F,0
|
||||||
|
6,3000.00,New York,XYZ Inc,42,M,1
|
||||||
|
7,1200.00,San Francisco,ABC Corp,55,F,0
|
||||||
|
8,900.00,Los Angeles,XYZ Inc,37,M,0
|
||||||
|
9,2500.00,Chicago,ABC Corp,33,F,1
|
||||||
|
10,1800.00,New York,XYZ Inc,48,M,0
|
||||||
|
11,750.00,San Francisco,ABC Corp,29,F,0
|
||||||
|
12,2200.00,Chicago,XYZ Inc,51,M,0
|
||||||
|
13,900.00,New York,ABC Corp,40,F,0
|
||||||
|
14,1600.00,Los Angeles,XYZ Inc,26,M,0
|
||||||
|
15,3000.00,San Francisco,ABC Corp,45,F,1
|
||||||
|
16,1200.00,Chicago,XYZ Inc,34,M,0
|
||||||
|
17,800.00,New York,ABC Corp,47,F,0
|
||||||
|
18,1900.00,Los Angeles,XYZ Inc,32,M,0
|
||||||
|
19,1100.00,San Francisco,ABC Corp,52,F,0
|
||||||
|
20,4000.00,Chicago,XYZ Inc,38,M,1
|
||||||
|
21,900.00,New York,ABC Corp,31,F,0
|
||||||
|
22,1700.00,Los Angeles,XYZ Inc,49,M,0
|
||||||
|
23,1000.00,San Francisco,ABC Corp,36,F,0
|
||||||
|
24,2300.00,Chicago,XYZ Inc,27,M,1
|
||||||
|
25,950.00,New York,ABC Corp,41,F,0
|
||||||
|
26,1400.00,Los Angeles,XYZ Inc,54,M,0
|
||||||
|
27,2800.00,San Francisco,ABC Corp,39,F,1
|
||||||
|
28,1100.00,Chicago,XYZ Inc,44,M,0
|
||||||
|
29,750.00,New York,ABC Corp,30,F,0
|
||||||
|
30,2000.00,Los Angeles,XYZ Inc,46,M,0
|
||||||
|
31,1250.00,San Francisco,ABC Corp,35,F,0
|
||||||
|
32,2100.00,Chicago,XYZ Inc,43,M,0
|
||||||
|
33,950.00,New York,ABC Corp,56,F,0
|
||||||
|
34,1800.00,Los Angeles,XYZ Inc,29,M,0
|
||||||
|
35,3200.00,San Francisco,ABC Corp,48,F,1
|
||||||
|
36,1300.00,Chicago,XYZ Inc,37,M,0
|
||||||
|
37,900.00,New York,ABC Corp,51,F,0
|
||||||
|
38,2000.00,Los Angeles,XYZ Inc,33,M,0
|
||||||
|
39,1050.00,San Francisco,ABC Corp,42,F,0
|
||||||
|
40,2400.00,Chicago,XYZ Inc,26,M,0
|
||||||
|
41,800.00,New York,ABC Corp,45,F,0
|
||||||
|
42,1500.00,Los Angeles,XYZ Inc,31,M,0
|
||||||
|
43,2800.00,San Francisco,ABC Corp,50,F,1
|
||||||
|
44,1350.00,Chicago,XYZ Inc,28,M,0
|
||||||
|
45,920.00,New York,ABC Corp,47,F,0
|
||||||
|
46,2000.00,Los Angeles,XYZ Inc,36,M,0
|
||||||
|
47,1125.00,San Francisco,ABC Corp,52,F,0
|
||||||
|
48,1900.00,Chicago,XYZ Inc,38,M,1
|
||||||
|
49,850.00,New York,ABC Corp,32,F,0
|
||||||
|
50,1750.00,Los Angeles,XYZ Inc,49,M,0
|
||||||
|
51,950.00,San Francisco,ABC Corp,27,F,0
|
||||||
|
52,2300.00,Chicago,XYZ Inc,41,M,0
|
||||||
|
53,850.00,New York,ABC Corp,54,F,0
|
||||||
|
54,1600.00,Los Angeles,XYZ Inc,39,M,0
|
||||||
|
55,3000.00,San Francisco,ABC Corp,46,F,1
|
||||||
|
56,1250.00,Chicago,XYZ Inc,35,M,0
|
||||||
|
57,800.00,New York,ABC Corp,56,F,0
|
||||||
|
58,2200.00,Los Angeles,XYZ Inc,29,M,0
|
||||||
|
59,1050.00,San Francisco,ABC Corp,48,F,0
|
||||||
|
60,4000.00,Chicago,XYZ Inc,37,M,1
|
||||||
|
61,950.00,New York,ABC Corp,30,F,0
|
||||||
|
62,1700.00,Los Angeles,XYZ Inc,49,M,0
|
||||||
|
63,1000.00,San Francisco,ABC Corp,36,F,0
|
||||||
|
64,2800.00,Chicago,XYZ Inc,27,M,1
|
||||||
|
65,900.00,New York,ABC Corp,41,F,0
|
||||||
|
66,1400.00,Los Angeles,XYZ Inc,54,M,0
|
||||||
|
67,3200.00,San Francisco,ABC Corp,39,F,1
|
||||||
|
68,1100.00,Chicago,XYZ Inc,44,M,0
|
||||||
|
69,750.00,New York,ABC Corp,30,F,0
|
||||||
|
70,2000.00,Los Angeles,XYZ Inc,46,M,0
|
||||||
|
71,1250.00,San Francisco,ABC Corp,35,F,0
|
||||||
|
72,2100.00,Chicago,XYZ Inc,43,M,0
|
||||||
|
73,950.00,New York,ABC Corp,56,F,0
|
||||||
|
74,1800.00,Los Angeles,XYZ Inc,29,M,0
|
||||||
|
75,3200.00,San Francisco,ABC Corp,48,F,1
|
||||||
|
76,1300.00,Chicago,XYZ Inc,37,M,0
|
||||||
|
77,900.00,New York,ABC Corp,51,F,0
|
||||||
|
78,2000.00,Los Angeles,XYZ Inc,33,M,0
|
||||||
|
79,1050.00,San Francisco,ABC Corp,42,F,0
|
||||||
|
80,2400.00,Chicago,XYZ Inc,26,M,0
|
||||||
|
81,800.00,New York,ABC Corp,45,F,0
|
||||||
|
82,1500.00,Los Angeles,XYZ Inc,31,M,0
|
||||||
|
83,2800.00,San Francisco,ABC Corp,50,F,1
|
||||||
|
84,1350.00,Chicago,XYZ Inc,28,M,0
|
||||||
|
85,920.00,New York,ABC Corp,47,F,0
|
||||||
|
86,2000.00,Los Angeles,XYZ Inc,36,M,0
|
|
BIN
zavrazhnova_svetlana_lab_6/result.png
Normal file
BIN
zavrazhnova_svetlana_lab_6/result.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
33
zavrazhnova_svetlana_lab_6/zavrazhnova_svetlana_lab_6.py
Normal file
33
zavrazhnova_svetlana_lab_6/zavrazhnova_svetlana_lab_6.py
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
import pandas as pd
|
||||||
|
from sklearn.model_selection import train_test_split
|
||||||
|
from sklearn.neural_network import MLPClassifier
|
||||||
|
from sklearn.metrics import accuracy_score, confusion_matrix, classification_report
|
||||||
|
|
||||||
|
data = pd.read_csv('fraud_dataset.csv')
|
||||||
|
|
||||||
|
X = data[['transaction_amount', 'location', 'merchant', 'age', 'gender']]
|
||||||
|
y = data['fraud_label']
|
||||||
|
|
||||||
|
# Преобразование категориальных переменных в числовые
|
||||||
|
X = pd.get_dummies(X, columns=['location', 'merchant', 'gender'])
|
||||||
|
|
||||||
|
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
|
||||||
|
|
||||||
|
# Обучение модели нейронной сети
|
||||||
|
model = MLPClassifier(random_state=1, max_iter=2000, n_iter_no_change=20,
|
||||||
|
alpha=0.001, hidden_layer_sizes=[1280], tol=0.0000001)
|
||||||
|
model.fit(X_train, y_train)
|
||||||
|
|
||||||
|
# Предсказание на тестовой выборке
|
||||||
|
y_pred = model.predict(X_test)
|
||||||
|
|
||||||
|
# Оценка качества модели
|
||||||
|
accuracy = accuracy_score(y_test, y_pred)
|
||||||
|
confusion = confusion_matrix(y_test, y_pred)
|
||||||
|
report = classification_report(y_test, y_pred)
|
||||||
|
|
||||||
|
print("Accuracy:", accuracy)
|
||||||
|
print("Confusion Matrix:")
|
||||||
|
print(confusion)
|
||||||
|
print("Classification Report:")
|
||||||
|
print(report)
|
Loading…
Reference in New Issue
Block a user