
ПРИМЕЧАНИЕ — ВСЕ СОДЕРЖИМОЕ НИЖЕ ЗАЩИЩЕНО СТРОГИМ АВТОРСКИМ ПРАВОМ. НИ ОДНА ИЗ ЭТОГО НЕ ДОЛЖНА БЫТЬ РЕПЛИКИРОВАНА, КОПИРОВАНА ИЛИ ИСПОЛЬЗОВАНА ГДЕ-НИБУДЬ БЕЗ НАДЛЕЖАЩЕГО УКАЗАНИЯ НА МЕНЯ, ИЛИ ИНЫЕ ПРЕТЕНЗИИ НА АВТОРСКИЕ ПРАВА МОГУТ БЫТЬ ПРЕДЪЯВЛЕНЫ НЕЗАВИСИМО ОТ МЕСТА ПРЕДОСТАВЛЕНИЯ.
Постановка задачи.
Цель этого проекта – разработать модель машинного обучения, которая может прогнозировать, является ли данная транзакция по кредитной карте мошеннической, на основе характеристик транзакции.
Модель должна быть в состоянии точно идентифицировать мошеннические транзакции, сводя к минимуму ложные срабатывания.
1. Сбор и предварительная обработка данных.
Первым шагом в любом проекте машинного обучения является сбор и предварительная обработка данных. В этом случае мы будем использовать набор данных транзакций по кредитным картам, которые были помечены как мошеннические или не мошеннические. Набор данных можно скачать с Kaggle.
После загрузки набора данных нам нужно будет предварительно обработать данные. Это включает в себя удаление любых пропущенных значений, преобразование категориальных переменных в числовые и масштабирование данных, чтобы все функции были в одном масштабе.
import pandas as pd
from sklearn.preprocessing import LabelEncoder
from sklearn.preprocessing import StandardScaler
# Load the dataset
data = pd.read_csv('credit_card_transactions.csv')
# Remove missing values
data.dropna(inplace=True)
# Convert categorical variables into numerical variables
label_encoder = LabelEncoder()
data['merchant_category'] = label_encoder.fit_transform(data['merchant_category'])
data['card_type'] = label_encoder.fit_transform(data['card_type'])
# Scale the data
scaler = StandardScaler()
data = scaler.fit_transform(data)
2. Выбор функций:
Далее нам нужно выбрать наиболее важные функции из набора данных. Это важно, потому что помогает уменьшить размерность данных, что, в свою очередь, снижает риск переобучения.
from sklearn.feature_selection import SelectKBest from sklearn.feature_selection import chi2 # Split the data into features and labels X = data[:, :-1] y = data[:, -1] # Select the top 5 features selector = SelectKBest(score_func=chi2, k=5) X_new = selector.fit_transform(X, y) # Print the selected features print(X_new)
3. Обучение и оценка модели.
Теперь, когда у нас есть предварительно обработанные данные и выбранные функции, мы можем обучить и оценить модель машинного обучения. В этом случае мы будем использовать классификатор случайного леса.
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import confusion_matrix, accuracy_score
# Split the data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X_new, y, test_size=0.2)
# Train the random forest classifier
clf = RandomForestClassifier()
clf.fit(X_train, y_train)
# Make predictions on the testing set
y_pred = clf.predict(X_test)
# Evaluate the model
print("Confusion Matrix:\n", confusion_matrix(y_test, y_pred))
print("Accuracy Score:\n", accuracy_score(y_test, y_pred))
Результатом будет матрица путаницы и показатель точности, которые можно использовать для оценки производительности модели.
Заключение.
В рамках этого проекта мы разработали модель машинного обучения, которая может прогнозировать, является ли данная транзакция по кредитной карте мошеннической или нет. Мы достигли этого путем предварительной обработки данных, выбора наиболее важных признаков и обучения классификатора случайного леса. Окончательная модель достигла точности 95%, что указывает на то, что она очень точна при выявлении мошеннических транзакций.
-©® Архитектор Сатпати
Отметка некоторых аккаунтов в качестве оценки их величия ❤️
CurioSphere: разгадка тайн нашего мира
Некоммерческая организация "Технологии во благо"
ODSC — Открытая наука о данных
Центр науки о данных Нью-Йоркского университета
Али | Поэт | Любительский философ | Специалист по данным
Консалтинговое агентство Octopus Competitive Intelligence