DB_CONFIG = {"host": "100.105.75.47", "port": 5432, "dbname": "postgres", "user": "postgres", "password": "",}
Feature 생성
스키마 : f_database, 테이블 : fct_database
시간 범위 : 컬럼 end_day : 2025-09-17 ~ 2025-12-19
** 중요- 컬럼 end_day의 각 속성값(날짜) 별로 구분
컬럼 station : FCT1~4 별로 분류
컬럼 step_description 의 속성값 NULL은 제외
컬럼 step_description 의 속성값 중 컬럼 value의 속성값이 NULL인 행과 아닌 행 구분
컬럼 step_description 의 속성값 중 컬럼 value의 속성값이 NULL인 행
7-1) 컬럼 step_description 의 속성값 별 컬럼 step_up_or_test_ct 의 속성값 평균, 30개 이하 제외
→ set_up_av의 테이블 속성값으로 입력
→ 높을 수록 negative
7-2) 컬럼 step_description 의 속성값 별 컬럼 step_up_or_test_ct 의 속성값 분산, 30개 이하 제외
→ set_up_dis의 테이블 속성값으로 입력
→ 높을 수록 negative
8-1) 컬럼 step_description 의 속성값 별 컬럼 value의 속성값 평균, 30개 이하 제외
→ value_av의 테이블 속성값으로 입력
→ 같은 행의 컬럼 result의 속성값 pass면 문제없음
8-2) 컬럼 step_description 의 속성값 별 컬럼 value의 속성값 분산, 30개 이하 제외
→ value_dis의 테이블 속성값으로 입력
→ 높을 수록 negative
8-2) 컬럼 step_description 의 속성값 별 컬럼 step_up_or_test_ct 의 속성값 평균, 30개 이하 제외
→ test_ct_av의 테이블 속성값으로 입력
→ 높을 수록 negative
8-3) 컬럼 step_description 의 속성값 별 컬럼 step_up_or_test_ct 의 속성값 분산, 30개 이하 제외
→ test_ct_dis의 테이블 속성값으로 입력
→ 높을 수록 negative
| [set_up_av] | step_description | nonpd_0.00_d_sig_val_090_set | nonpd_0.00_load_a_cc_set | … | … |
|---|---|---|---|---|---|
| end_day | station | ||||
| 20251113 | FCT1 | ||||
| FCT2 | |||||
| FCT3 | |||||
| FCT4 | |||||
| 20251114 | FCT1 | ||||
| FCT2 | |||||
| FCT3 | |||||
| FCT4 |
Step-wise Z 정규화
step_description 기준 정규화
설비, 날짜 차이 제거
모든 설비에서 동일 기준 벡터 공간 형성
[z]set_up_av, [z]set_up_dis, [z]value_av, [z]value_dis, [z]test_ct_av, [z]test_ct_dis
Cluster 생성(결정계수 & VIF & p-value (유의확률)& beta(회귀계수))
→ 3가지 dataframe 있을 것
컬럼 [vector]를 넣어 [z]set_up_av, [z]set_up_dis, [z]value_av, [z]value_dis, [z]test_ct_av, [z]test_ct_dis들을 속성값으로 가질 것
1-1) 컬럼 feat_a, feat_b의 속성값 별 조건 없음, 1번째 dataframe
1-2) 아래의 조건에 따라 dataframe 산출할 것
1-2-1) 컬럼 feat_a, feat_b의 속성값 별 조건 “pd_” or “nonpd_” 에 따라 분류
1-2-2) nonpd 별 분류 - 2번째 dataframe
nonpd_1.06 Test Input Voltage(V)
nonpd_1.07 Test Idle Current(mA)
nonpd_1.10 Test VUSB_usb(ELoad1=5A)Volt(V)
nonpd_1.11 Test VUSB_usb(ELoad1=5A)Curr(A)
nonpd_1.12 Test VUSB_type-C(ELoad2=5A)(V)
nonpd_1.13 Test VUSB(ELoad2=5A)Volt(V)
nonpd_1.14 Test VUSB(ELoad2=5A)Curr(A)
nonpd_1.15 Test VUSB_usb (ELoad1=5A)(V)
nonpd_1.16 Test Check CC1 level(V)
nonpd_1.17 Test Check CC2 level(B side)(V)
nonpd_1.18 Test VUSB_usb(ELoad1=2.4A)(V)
nonpd_1.19 Test IELoad1(A)
nonpd_1.20 Test VUSB_type-C(ELoad2=3A)(V)
nonpd_1.21 Test IELoad2(A)
nonpd_1.32 Test iqz(uA)
1-2-3) pd별 분류 - 3번째 dataframe
pd_1.01 Test Input Voltage(V)
pd_1.18 Test Input Voltage(V)
pd_1.19 Test Idle Current(mA)
pd_1.20 Test VUSB_type-C(No-Load-A_side)
pd_1.21 Test VUSB_Type-A(No-Load)
pd_1.22 Test VUSB_Type-A(ELoad1=5A)Current
pd_1.23 Test VUSB_Type-A(ELoad1=5A)Volt
pd_1.24 Test VUSB_Type-C(ELoad2=5A)
pd_1.25 Test VUSB_Type-C(ELoad2=5A)Current
pd_1.26 Test VUSB_Type-C(ELoad2=5A)Volt
pd_1.27 Test VUSB_Type-A(ELoad1=5A)
pd_1.28_Test_IELoad2_Type-C(B_side)
pd_1.29_Test_VUSB_type-C_B_side(ELoad2=3A)
pd_1.30 Test IELoad1_Type-A
pd_1.31_Test_Type-A(ELoad1=2.4A)
pd_1.33_Test_VUSB_Type-C_A(ELoad2=1.35A)cur
pd_1.34_Test_VUSB_Type-C_A(ELoad2=1.35A)vol
pd_1.35 Test Check CC1 level(A side)
pd_1.36 Test iqz(uA)
2-1) 컬럼 feat_a, feat_b의 속성값 별 조건 없음, 1번째 dataframe
2-2) 아래의 조건에 따라 dataframe 산출할 것
Track A - 장비 Health Index(단조 경감) : 설비 내 장비 이상 유무 체크**(cell14번의 결정계수는 단순히 후보일 뿐)**
Track B - Fail Risk Index( 스페어파트 이벤트)
원인 판별 로직
| --- | --- | --- | --- |
| --- | --- |
| --- | --- |