import pandas as pd
import numpy as np
import sklearn
import pickle
import time
import datetime
import warnings
import matplotlib.pyplot as plt
'ignore')
warnings.filterwarnings(import matplotlib.pyplot as plt
from ipywidgets import interact, widgets
# import graft
with open('./fraudTrain.pkl', 'rb') as file:
= pickle.load(file) fraudTrain
= fraudTrain[fraudTrain.is_fraud == 1]
df
= df['cc_num'].unique()
fraud1_cc_num
= fraudTrain[fraudTrain['cc_num'].isin(fraud1_cc_num)].reset_index()
df_fraud
= df_fraud.groupby("cc_num")["is_fraud"].agg(['sum']).reset_index().sort_values(by='sum',ascending=False)['cc_num'].tolist() cc_num_value_sort
import matplotlib.pyplot as plt
from ipywidgets import interact, widgets
def plot_fraud_over_time(cc_num=4.503100e+18):
=(10, 6))
plt.figure(figsize= df_fraud[df_fraud['cc_num'] == cc_num]
data = (data['is_fraud'] == 1).sum()
fraud_count
'is_fraud'] == 1]['trans_date_trans_time'], data[data['is_fraud'] == 1]['is_fraud'], marker='o',s=300,alpha=0.1, color='red', label='Fraudulent Transactions')
plt.scatter(data[data['is_fraud'] == 0]['trans_date_trans_time'], data[data['is_fraud'] == 0]['is_fraud'], marker='o',s=300,alpha=0.005, color='blue', label='Legitimate Transactions')
plt.scatter(data[data[f'Fraudulent Transactions Over Time \n cc_num: {cc_num}\n Fraudulent Count: {fraud_count}')
plt.title('Transaction Date and Time')
plt.xlabel('Fraudulent Transactions')
plt.ylabel(-0.1, 1.1)
plt.ylim(='center right')
plt.legend(loc
plt.show()
=widgets.Dropdown(options=[''] + cc_num_value_sort, value=4.503100e+18, description='cc_num:')) interact(plot_fraud_over_time, cc_num
<function __main__.plot_fraud_over_time(cc_num=4.5031e+18)>
import matplotlib.pyplot as plt
from ipywidgets import interact, widgets
def plot_fraud_over_time(cc_num=180068000000000.0):
=(10, 6))
plt.figure(figsize= df_fraud[df_fraud['cc_num'] == cc_num]
data = (data['is_fraud'] == 1).sum()
fraud_count
'is_fraud'] == 1]['trans_date_trans_time'], data[data['is_fraud'] == 1]['is_fraud'], marker='o', s=300, alpha=0.1, color='red', label='Fraudulent Transactions')
plt.scatter(data[data['is_fraud'] == 0]['trans_date_trans_time'], data[data['is_fraud'] == 0]['is_fraud'], marker='o', s=300, alpha=0.005, color='blue', label='Legitimate Transactions')
plt.scatter(data[data[f'Fraudulent Transactions Over Time \n cc_num: {cc_num}\n Fraudulent Count: {fraud_count}')
plt.title('Transaction Date and Time')
plt.xlabel('Fraudulent Transactions')
plt.ylabel(-0.1, 1.1)
plt.ylim(='center right')
plt.legend(loc
# Save the plot as a PDF
'fraudulent_transactions.pdf', format='pdf')
plt.savefig(
plt.show()
=widgets.Dropdown(options=[''] + cc_num_value_sort, value=180068000000000, description='cc_num:')) interact(plot_fraud_over_time, cc_num
<function __main__.plot_fraud_over_time(cc_num=180068000000000.0)>
import pickle
def save_plot_function(plot_function, filename):
with open(filename, 'wb') as f:
pickle.dump(plot_function, f)
'plot_fraud_over_time.pkl')
save_plot_function(plot_fraud_over_time,
print("시각화 함수를 plot_fraud_over_time.pkl 파일로 저장했습니다.")
시각화 함수를 plot_fraud_over_time.pkl 파일로 저장했습니다.
import plotly.graph_objects as go
from ipywidgets import widgets, interact
from IPython.display import display
def plot_fraud_over_time(cc_num):
= df_fraud[df_fraud['cc_num'] == cc_num]
data = (data['is_fraud'] == 1).sum()
fraud_count = go.Figure()
fig
=data[data['is_fraud'] == 1]['trans_date_trans_time'],
fig.add_trace(go.Scatter(x=data[data['is_fraud'] == 1]['is_fraud'],
y='markers',
mode=dict(color='red'),
marker='Fraudulent Transactions'))
name
=data[data['is_fraud'] == 0]['trans_date_trans_time'],
fig.add_trace(go.Scatter(x=data[data['is_fraud'] == 0]['is_fraud'],
y='markers',
mode=dict(color='blue'),
marker='Legitimate Transactions'))
name
=f'Fraudulent Transactions Over Time \n cc_num: {cc_num}\n Fraudulent Count: {fraud_count}',
fig.update_layout(title='Transaction Date and Time',
xaxis_title='Fraudulent Transactions')
yaxis_title
fig.show()
= widgets.Dropdown(
cc_num_dropdown =cc_num_value_sort,
options=cc_num_value_sort[0],
value='cc_num:'
description
)
#display(cc_num_dropdown)
=cc_num_dropdown) interact(plot_fraud_over_time, cc_num
<function __main__.plot_fraud_over_time(cc_num)>