Merge pull request 'zavrazhnova_svetlana_lab_5' (#91) from zavrazhnova_svetlana_lab_5 into main
Reviewed-on: http://student.git.athene.tech/Alexey/IIS_2023_1/pulls/91
This commit is contained in:
commit
124f682c8b
16
zavrazhnova_svetlana_lab_5/README.md
Normal file
16
zavrazhnova_svetlana_lab_5/README.md
Normal file
@ -0,0 +1,16 @@
|
||||
# Задание
|
||||
Предсказать, является ли транзакция мошеннической или нет на основе других данных о транзакции, таких как сумма транзакции, местоположение, банк, возраст и пол клиента
|
||||
### Как запустить лабораторную работу:
|
||||
ЛР запускается в файле zavrazhnova_svetlana_lab_5.py через Run, а затем в консоли должны появится вычисления
|
||||
|
||||
### Технологии
|
||||
Методы PolynomialFeatures и LogisticRegression из библиотеки sklearn
|
||||
|
||||
### Что делает лабораторная:
|
||||
Обучаются модели логистической и полиномиальной регрессии на обучающих данных и используются эти модели для предсказания мошеннических транзакций на тестовых данных. Оценивается точность каждой модели с помощью метрики accuracy.
|
||||
|
||||
### Пример выходных значений:
|
||||
![result.png](result.png)
|
||||
|
||||
### Вывод:
|
||||
Точность полиномиальной регрессии и логистической регрессии равны 1.0, это означает, что обе модели предсказали метки классов на тестовом наборе данных без ошибок. То есть они смогли точно определить, является ли транзакция мошеннической или нет.
|
87
zavrazhnova_svetlana_lab_5/fraud_dataset.csv
Normal file
87
zavrazhnova_svetlana_lab_5/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_5/result.png
Normal file
BIN
zavrazhnova_svetlana_lab_5/result.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.4 KiB |
41
zavrazhnova_svetlana_lab_5/zavrazhnova_svetlana_lab_5.py
Normal file
41
zavrazhnova_svetlana_lab_5/zavrazhnova_svetlana_lab_5.py
Normal file
@ -0,0 +1,41 @@
|
||||
import pandas as pd
|
||||
from sklearn.model_selection import train_test_split
|
||||
from sklearn.preprocessing import PolynomialFeatures
|
||||
from sklearn.linear_model import LogisticRegression
|
||||
from sklearn.metrics import accuracy_score
|
||||
|
||||
# Чтение данных из файла CSV
|
||||
data = pd.read_csv('fraud_dataset.csv')
|
||||
|
||||
# Разделение данных на признаки (X) и целевую переменную (y)
|
||||
X = data[['transaction_amount', 'location', 'merchant', 'age', 'gender']]
|
||||
y = data['fraud_label']
|
||||
|
||||
# Преобразование категориальных признаков в числовые с помощью One-Hot Encoding
|
||||
X = pd.get_dummies(X, columns=['location', 'merchant', 'age', 'gender'])
|
||||
|
||||
# Разделение данных на обучающую и тестовую выборки
|
||||
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
|
||||
|
||||
# Применение полиномиальной регрессии
|
||||
poly = PolynomialFeatures(degree=2)
|
||||
X_train_poly = poly.fit_transform(X_train)
|
||||
X_test_poly = poly.transform(X_test)
|
||||
|
||||
poly_reg = LogisticRegression(max_iter=1000)
|
||||
poly_reg.fit(X_train_poly, y_train)
|
||||
|
||||
# Применение логистической регрессии
|
||||
log_reg = LogisticRegression(max_iter=1000)
|
||||
log_reg.fit(X_train, y_train)
|
||||
|
||||
# Предсказание меток классов на тестовом наборе данных
|
||||
y_pred_poly = poly_reg.predict(X_test_poly)
|
||||
y_pred = log_reg.predict(X_test)
|
||||
|
||||
# Вычисление точности предсказания
|
||||
accuracy_poly = accuracy_score(y_test, y_pred_poly)
|
||||
accuracy = accuracy_score(y_test, y_pred)
|
||||
|
||||
print('Точность полиномиальной регрессии:', accuracy_poly)
|
||||
print('Точность логистической регрессии:', accuracy)
|
Loading…
Reference in New Issue
Block a user