diff --git a/zavrazhnova_svetlana_lab_6/README.md b/zavrazhnova_svetlana_lab_6/README.md new file mode 100644 index 0000000..67cc05d --- /dev/null +++ b/zavrazhnova_svetlana_lab_6/README.md @@ -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, что говорит о идеальной предсказательной способности модели для обоих классов. Поддержка указывает на количество образцов в каждом классе в тестовой выборке. \ No newline at end of file diff --git a/zavrazhnova_svetlana_lab_6/fraud_dataset.csv b/zavrazhnova_svetlana_lab_6/fraud_dataset.csv new file mode 100644 index 0000000..f23b91d --- /dev/null +++ b/zavrazhnova_svetlana_lab_6/fraud_dataset.csv @@ -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 diff --git a/zavrazhnova_svetlana_lab_6/result.png b/zavrazhnova_svetlana_lab_6/result.png new file mode 100644 index 0000000..a587af8 Binary files /dev/null and b/zavrazhnova_svetlana_lab_6/result.png differ diff --git a/zavrazhnova_svetlana_lab_6/zavrazhnova_svetlana_lab_6.py b/zavrazhnova_svetlana_lab_6/zavrazhnova_svetlana_lab_6.py new file mode 100644 index 0000000..c95d737 --- /dev/null +++ b/zavrazhnova_svetlana_lab_6/zavrazhnova_svetlana_lab_6.py @@ -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) \ No newline at end of file