(평균값, 표준편차, 진폭, 평균 차이, 표준편차 차이)

DB_CONFIG = {"host": "100.105.75.47", "port": 5432, "dbname": "postgres", "user": "postgres", "password": "",}

  1. Feature 생성

    1. 스키마 : f_database, 테이블 : fct_database

    2. 시간 범위 : 컬럼 end_day : 2025-10-01 ~ 2025-11-30

    3. 컬럼 end_day의 각 속성값(날짜) 별로 구분

    4. 컬럼 station : FCT1~4 별, 컬럼 remark : PD or Non-PD 별로 분류

    5. 컬럼 step_description 의 속성값 NULL은 제외

    6. 컬럼 step_description 의 속성값 중 컬럼 value의 속성값이 NULL인 행과 아닌 행 구분

    7. 컬럼 step_description 의 속성값 중 컬럼 value의 속성값이 NULL인 행은 아래의 조건에 따를 것

    7-1) 컬럼 step_description 의 속성값 별 컬럼 set_up_or_test_ct 의 속성값 평균, 30개 이하 제외

    → set_up_av의 테이블 속성값으로 입력

    → 높을 수록 negative

    7-2) 컬럼 step_description 의 속성값 별 컬럼 set_up_or_test_ct 의 속성값 분산, 30개 이하 제외

    → set_up_dis의 테이블 속성값으로 입력

    → 높을 수록 negative

    1. 컬럼 step_description 의 속성값 중 컬럼 value의 속성값이 NULL이 아닌 행 구분하고 아래의 조건을 따를 것

    8-1) 컬럼 step_description 의 속성값 별 컬럼 value의 속성값 평균, 30개 이하 제외

    → value_av의 테이블 속성값으로 입력

    → 같은 행의 컬럼 result의 속성값 pass면 문제없음

    8-2) 컬럼 step_description 의 속성값 별 컬럼 value의 속성값 분산, 30개 이하 제외

    → value_dis의 테이블 속성값으로 입력

    → 높을 수록 negative

    8-3) 컬럼 step_description 의 속성값 별 컬럼 value의 속성값 진폭, 30개 이하 제외

    → value_amp의 테이블 속성값으로 입력

    → 높을 수록 negative

    8-4) 컬럼 step_description 의 속성값 별 컬럼 value의 속성값 평균값 차이, 30개 이하 제외

    → value_av_diff의 테이블 속성값으로 입력

    → 높을 수록 negative

    8-5) 컬럼 step_description 의 속성값 별 컬럼 value의 속성값 분산 차이, 30개 이하 제외

    → value_dis_diff의 테이블 속성값으로 입력

    → 높을 수록 negative

    8-6) 컬럼 step_description 의 속성값 별 컬럼 step_up_or_test_ct 의 속성값 평균, 30개 이하 제외

    → test_ct_av의 테이블 속성값으로 입력

    → 높을 수록 negative

    8-7) 컬럼 step_description 의 속성값 별 컬럼 step_up_or_test_ct 의 속성값 분산, 30개 이하 제외

    → test_ct_dis의 테이블 속성값으로 입력

    → 높을 수록 negative

    1. pivot하여 컬럼 remark 속성값 ‘PD’ 또는 ‘Non-PD’ 별로 총 18개의 dataframe 출력
  2. Step-wise Z 정규화

    1. step_description 속성값 기준 정규화

    2. 설비, 날짜 차이 제거

    3. 모든 설비에서 동일 기준 벡터 공간 형성

    3-1) [z]set_up_av

    3-2) [z]set_up_dis

    3-3) [z]test_ct_av

    3-4) [z]test_ct_dis

    3-5) [z]value_av

    3-6) [z]value_dis

    3-7) [z]value_amp

    3-8) [z]value_av_diff

    3-9) [z]value_dis_diff



  1. 군집 구분

    1. 군집 1 : [z]set_up_av, [z]set_up_dis, [z]test_ct_av, [z]test_ct_dis

    2. 군집 2 : [z]value_av, [z]value_dis, [z]value_amp, [z]value_av_diff, [z]value_dis_diff

  2. 군집 1 : remark 속성값 ‘PD’, ‘Non-PD’ 별로 구분하지 말 것

  3. 군집 2: remark 속성값 ‘PD’, ‘Non-PD’ 별로 구분할 것

  4. 각 군집 별로 구분하여 결정계수, F-stats, VIF, 회귀계수(beta), Final 결정계수 산출

    1. 결정계수 & F-stats 산출 조건

    step_description의 속성값 기준 pair하여 결정계수 산출

    동일 step_description의 속성값끼리 pair 하지 말것

    결정계수 0.7 이상인 항목 이외 제외

    F-stats 7 미만인 항목 제외

    1. 결정계수 0.7 이상인 항목 + F-stats 7 미만인 항목 → VIF를 구할 것

    2. 회귀계수(beta)로 각 step_description의 속성값 별로 Final 결정계수를 산출



  1. [군집 2 사용] Track A - 장비 Health Index(단조 경감) : 설비 내 장비 이상 유무 체크

    1. 비정상 기간 : 2025-10-30~2025-11-16(station : FCT2, step_description : pd_1.34_Test_VUSB_Type-C_A(ELoad2=1.35A)vol)

    2. 정상 기간 : 2025-11-17 ~ 2025-12-19(station : FCT2, step_description : pd_1.34_Test_VUSB_Type-C_A(ELoad2=1.35A)vol)

    1. 정상 기간 : 2025-11-17 ~ 2025-11-30(station : FCT2,3,4)

    2. 비정상 기간 : 2025-11-17 ~ 2025-12-19(station : FCT1, step_description : pd_1.34_Test_VUSB_Type-C_A(ELoad2=1.35A)vol)

    3. 벡터 방향 처리

    1. 속성 step_description간 관계

    [pd_1.00] → 전체 항목과 관련됨

    [pd_(번호)] → 각 번호끼리 관련됨

    [nonpd_0.00] → 전체 항목과 관련됨

    [nonpd_(번호)] → 각 번호끼리 관련됨

  2. Track B - Fail Risk Index( 스페어파트 이벤트)

  3. 원인 판별 로직