데이터 증설
- 완전 요인 실험 Full Factorial Design
# 필요한 라이브러리 임포트
import numpy as np
import pandas as pd
from pyDOE2 import fullfact
# 실험 변수와 각 변수의 수준 정의 # 예를 들어 2개의 변수 A, B가 각각 3개와 2개의 수준을 가진다고 가정
levels = [3, 2]
# A 변수는 3개의 수준, B 변수는 2개의 수준
# 완전 요인 실험 설계 생성
design = fullfact(levels)
# 설계 결과 확인 (모든 요인 조합 출력)
df = pd.DataFrame(design, columns=['A', 'B'])
# 각 수준을 1부터 시작하도록 변환 (pyDOE2의 기본 값은 0부터 시작)
df['A'] = df['A'] + 1
df['B'] = df['B'] + 1
# 결과 출력
print(df)
- 라틴 방격법 (Latin Hypercube Sampling)
from pyDOE2 import lhs
# 변수 개수와 샘플 개수 정의
num_variables = 3 # 변수가 3개
num_samples = 10 # 샘플이 10개
# 라틴 방격법을 사용한 설계 생성
design = lhs(num_variables, samples=num_samples)
# 설계 결과를 pandas 데이터프레임으로 변환하여 보기 쉽게 출력
df = pd.DataFrame(design, columns=['Variable 1', 'Variable 2', 'Variable 3'])
# 결과 출력
print(df)
- DOE를 사용한 파라미터 스윕(Parameters Sweep)
- 인공 데이터 생성 (Synthetic Data Generation)
- DOE 기법을 이용한 데이터셋 증대(Augmentation)
DOE로 데이터 생성과 모델 학습 log정보로 예측 시스템
import pandas as pd
from sklearn.ensemble import RandomForestClassifier
# DOE 데이터와 로그 데이터 결합
data = {
'doe_parameter1': [0.1, 0.2, 0.15, 0.3], # DOE 파라미터 1
'doe_parameter2': [10, 12, 11, 14], # DOE 파라미터 2
'training_loss': [0.05, 0.07, 0.04, 0.1], # 학습 손실 값
'training_time': [300, 320, 310, 330], # 학습 시간 (초)
'error_occurred': [0, 1, 0, 1] # 에러 발생 여부 (1: 에러 발생, 0: 정상)
}
df_logs = pd.DataFrame(data)
# 독립 변수 (DOE 파라미터와 학습 로그)와 종속 변수 (에러 발생 여부)를 정의
X = df_logs[['doe_parameter1', 'doe_parameter2', 'training_loss', 'training_time']]
y = df_logs['error_occurred']
# 에러 발생을 예측하는 분류 모델 (랜덤 포레스트)
error_prediction_model = RandomForestClassifier()
# 모델 학습
error_prediction_model.fit(X, y)
# 새로운 DOE 데이터 및 학습 로그가 들어왔을 때 에러 발생 여부 예측
new_data = [[0.18, 13, 0.06, 315]] # 새로운 학습 로그 데이터
predicted_error = error_prediction_model.predict(new_data)
if predicted_error[0] == 1:
print("Warning: An error is likely to occur with the current settings.")
else:
print("No issues detected.")
- 의뢰자가 생성한 DOE 데이터와 모델 학습 시 발생한 로그(예: 학습 파라미터, 학습 속도, 손실 값, 에러 메시지)를 AI 모델이 학습하여, 특정 상황에서 발생할 수 있는 에러를 예측하거나 원인을 자동으로 분석하는 시스템을 구축할 수 있습니다. 이때, 실제 로그 데이터를 기반으로 한 원인 분석을 할 수 있도록, DOE 데이터의 특성과 학습 과정에서의 로그 데이터를 결합하여 학습하는 것이 핵심입니다.
- 이 코드는 의뢰자가 생성한 DOE 데이터와 학습 로그 데이터를 결합하여, 특정 학습 과정에서 에러가 발생할 가능성을 예측하는 방식