initial commit

새로운 repository 를 만들었습니다.
This commit is contained in:
David Ko
2025-04-29 14:11:00 +09:00
commit 82f8b93a2c
127 changed files with 7053422 additions and 0 deletions

47
jun/run_preprocessing.py Executable file
View File

@@ -0,0 +1,47 @@
from Preprocessing_application_code import extract_features
import numpy as np
import pickle
import pandas as pd
from sklearn.preprocessing import MinMaxScaler
from tensorflow.keras.models import load_model
import tensorflow as tf
import os
# 현재 파일(run_preprocessing.py)의 경로
current_dir = os.path.dirname(__file__)
# model 폴더 안의 Recall_0.77.keras 경로 조합
model_path = os.path.join(current_dir, "model", "White_list_model.keras")
scaler_path = os.path.join(current_dir, "model", "scaler.pkl")
# 모델 불러오기
model = load_model(model_path)
# 스케일링 파일 불러오기
with open(scaler_path,'rb') as f:
scaler = pickle.load(f)
# @tf.function을 사용하여 예측 최적화
@tf.function(reduce_retracing=True)
def predict_with_model(model, input_data):
return model(input_data)
# 입력값 받기
url = input("확인할 URL을 입력하세요 : ")
# 특성 추출
feature = extract_features(url)
input_df = pd.DataFrame([list(feature.values())], columns=feature.keys())
# 스케일링
input_scaled = scaler.transform(input_df)
# 예측
prediction = predict_with_model(model, input_scaled)
# 결과 출력
best_threshold = 0.5 # 예시로 임계값을 설정, 실제 값으로 교체해야 합니다.
if prediction[0][0] > best_threshold:
print(f"입력값 : {url} \n악성 URL로 의심됩니다. (score {round(float(prediction[0][0]), 4)})")
else:
print(f"입력값 : {url} \n정상 URL로 의심됩니다. (score {round(float(prediction[0][0]), 4)})")