<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>ㅌㅌㅌngineer</title>
    <link>https://eeengineer.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Sat, 27 Jun 2026 15:05:30 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>두껍22</managingEditor>
    <item>
      <title>[내일배움캠프] QA/QC_5기 본캠프(0625)</title>
      <link>https://eeengineer.tistory.com/17</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;최종 프로젝트 시작했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반도체 도메인인데 갑자기 뭔 제조 데이터가,,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반도체 테스트 소켓 제조 데이터가 반도체 데이터는 아니잖소&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;암튼 오늘 한 거 지피티가 정리해줬다.&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;h1&gt;TIL &amp;mdash; IPQC/AOI 데이터 시간축 정렬과 SN 기반 사출 후보 묶음 검증&lt;/h1&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;오늘 한 일&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오늘은 월별 IPQC/AOI 원본 데이터를 바로 모델링하지 않고, 먼저 시간축과 사출 후보 단위가 분석에 사용할 수 있는 구조인지 확인했다.&lt;br /&gt;초기 데이터 감사에서는 2025년 7월부터 2026년 2월까지 총 8개 CSV, 237,039행을 대상으로 파일 구조, 결측, 중복, 이상값, 누수 위험 컬럼을 점검했다. 이 과정에서 2026년 1월과 2월의 FAIL 비율이 높아지는 현상은 확인했지만, 공정 문제라고 단정하지 않고 검사 기준, 데이터 수집 방식, 설비&amp;middot;품번 구성 변화 가능성을 남겨두었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이후 Injection_Time을 기준으로 전체 데이터를 정렬해 시간 흐름을 확인했다. Injection_Time은 전체 행에서 100% 파싱됐고, source_month와 실제 calendar month의 불일치도 없었다. 다만 동일한 타임스탬프에 여러 행이 몰려 있는 구조가 매우 강했다. 중복 타임스탬프가 62,406개였고, 전체 행의 대부분이 동일 시각 중복에 포함됐다. 이 결과만 보면 행 단위 시간 정렬만으로는 실제 사출 단위를 안정적으로 구분하기 어렵다고 판단했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 SN 구조를 이용해 사출 후보 묶음을 만들었다. SN에서 prefix, serial, 설비&amp;middot;품번 토큰, cavity 번호를 파싱했고, sn_serial - sn_cavity를 이용해 sn_batch_key를 만들었다. 이를 바탕으로 shot_candidate_id를 정의했다. 이 방식으로 전체 237,039행이 모두 SN 파싱에 성공했고, 58,119개의 사출 후보 묶음이 생성됐다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음 만든 v1 정렬에서는 Injection_Time_parsed를 첫 번째 정렬 기준으로 사용했다. 그런데 동일한 shot_candidate_id 안의 4개 cavity가 서로 다른 timestamp를 가지면, 같은 묶음의 행들이 전체 데이터 중간중간에 흩어지는 문제가 생겼다. 처음 검증 로직은 이 문제를 제대로 잡지 못했다. cavity 순서 검증이 동일 timestamp 안에서만 이뤄졌고, 그룹 연속성 검증도 실제 계산이 아니라 통과 처리에 가까웠기 때문이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이를 수정하기 위해 v2에서는 각 shot_candidate_id별 최소 Injection_Time을 group_anchor_time으로 계산하고, 이 값을 첫 번째 정렬 기준으로 사용했다. 그 결과 v1에서 발생했던 비연속 그룹 6,482개와 cavity 순서 위반 34,197행이 모두 0건으로 줄었다. 행 수 237,039행도 그대로 유지됐고, raw 파일과 v1 출력 파일도 덮어쓰지 않았다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;오늘 배운 점&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터를 시간순으로 정렬한다고 해서 항상 분석 가능한 순서가 되는 것은 아니었다. 특히 이번 데이터처럼 한 시각에 여러 검사 행이 몰려 있고, 한 번의 사출 후보가 여러 cavity 행으로 나뉘어 있는 경우에는 행 단위 timestamp보다 그룹 단위 기준이 더 중요했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음에는 Injection_Time을 기준으로 정렬하면 자연스럽게 생산 흐름이 보일 것이라고 생각했다. 하지만 실제로는 동일 시각 중복이 많았고, 한 후보 묶음 안에서도 timestamp가 조금씩 달라지는 경우가 많았다. 이 때문에 단순 시간 정렬은 전체 흐름을 보는 데는 유효하지만, 사출 단위 분석이나 cavity 순서 분석에는 충분하지 않았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또 하나 배운 점은 검증 로직 자체도 검증해야 한다는 것이다. v1에서는 정렬 검증 결과가 통과로 나왔지만, 실제로는 같은 후보 묶음의 행들이 연속되지 않는 문제가 있었다. 겉으로는 검증을 통과했지만, 검증 조건이 문제를 제대로 잡지 못하면 잘못된 결과를 정상으로 받아들일 수 있다. 이번에 v2에서 비연속 그룹, cavity 순서 위반, 행 동일성, raw 파일 보존 여부까지 다시 확인한 이유도 이 때문이다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;오늘의 판단&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;v1 출력 파일은 후속 분석에 사용하지 않는 것이 맞다. v1은 행 수는 보존했지만, 같은 shot_candidate_id의 행들이 흩어질 수 있는 구조였기 때문에 그룹 단위 분석에는 부적합하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반면 v2는 group_anchor_time을 사용해 그룹 연속성과 cavity 순서를 확보했다. 다만 v2도 완전히 확정된 실제 사출 단위라고 보기는 어렵다. shot_candidate_id는 SN 규칙으로 만든 후보 묶음일 뿐이고, 실제 설비 로그나 공정 기록과 교차 확인된 것은 아니다. 따라서 현재 단계에서는 &amp;ldquo;실제 1회 사출&amp;rdquo;이 아니라 &amp;ldquo;SN 구조 기반 사출 후보 묶음&amp;rdquo;으로 표현하는 것이 맞다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한 v2는 그룹 연속성을 확보하는 대신 행 단위 Injection_Time의 전역 단조성을 포기한다. 실제로 행 단위 시간 역행이 40,746건 보고됐다. 하지만 이것은 v2 정렬 설계의 예상 결과이며, 실패 조건은 아니다. 이번 분석에서는 행 하나하나의 시간순보다 같은 후보 묶음을 연속된 단위로 유지하는 것이 더 중요했다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;남은 문제&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아직 해결하지 못한 부분도 많다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;첫째, shot_candidate_id가 실제 1회 사출을 의미하는지는 확인하지 못했다. 지금은 SN 구조를 이용해 만든 후보일 뿐이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;둘째, duplicate_sn 그룹이 1,938개 존재한다. 이 중복이 재검사인지, 재투입인지, 데이터 중복인지 알 수 없다. 중복을 제거할지 유지할지 결정하려면 더 확인이 필요하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;셋째, incomplete 그룹이 1,645개 있다. 일부 cavity가 누락된 이유가 실제 미검사인지, 불량으로 인한 제외인지, 데이터 수집 누락인지 확인되지 않았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;넷째, rule_mismatch 행이 152개 존재한다. SN 연번 규칙의 예외인지, 데이터 오류인지, 특정 작업 조건에서 발생한 정상 케이스인지는 아직 확인되지 않았다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;다음에 할 일&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 단계에서는 v2 정렬 결과를 기준으로 분석을 이어갈지 먼저 결정해야 한다. 내 판단으로는 v1은 사용하지 않고, v2를 기준 데이터로 삼는 방향이 타당하다. 다만 duplicate_sn, incomplete, rule_mismatch 그룹은 별도 플래그를 유지한 채 분석해야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;바로 모델링으로 넘어가기보다는 먼저 그룹 단위 요약 테이블을 만드는 것이 좋다. complete_4 그룹을 중심으로 4개 cavity의 사출 조건, AOI 결과, PASS/FAIL 분포를 한 묶음으로 압축해볼 수 있다. 이때 duplicate_sn과 rule_mismatch는 섞지 않고 따로 분리해야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오늘 작업의 결론은 단순히 데이터를 정렬한 것이 아니라, &amp;ldquo;이 데이터에서 무엇을 한 단위로 볼 것인가&amp;rdquo;를 정하는 과정이었다. 처음에는 행 단위 시간 흐름을 보려고 했지만, 실제 분석에는 SN 기반 후보 묶음이 더 적절하다는 방향으로 정리됐다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
      <category>QAQC_5기 부트캠프/최종 프로젝트</category>
      <author>두껍22</author>
      <guid isPermaLink="true">https://eeengineer.tistory.com/17</guid>
      <comments>https://eeengineer.tistory.com/17#entry17comment</comments>
      <pubDate>Thu, 25 Jun 2026 21:26:57 +0900</pubDate>
    </item>
    <item>
      <title>[내일배움캠프] QA/QC_5기 본캠프(0619)</title>
      <link>https://eeengineer.tistory.com/16</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;오늘도 포트폴리오 열심히 해봤다..&lt;br /&gt;딱히 적을게 없다..&lt;/p&gt;</description>
      <category>QAQC_5기 부트캠프</category>
      <author>두껍22</author>
      <guid isPermaLink="true">https://eeengineer.tistory.com/16</guid>
      <comments>https://eeengineer.tistory.com/16#entry16comment</comments>
      <pubDate>Fri, 19 Jun 2026 21:01:13 +0900</pubDate>
    </item>
    <item>
      <title>[내일배움캠프] QA/QC_5기 본캠프(0618)</title>
      <link>https://eeengineer.tistory.com/15</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;오늘의 아티클 스터디&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주제 : 열심히 공부하는 당신이 서류조차 못 넘는 이유&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://yozm.wishket.com/magazine/detail/3729/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://yozm.wishket.com/magazine/detail/3729/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1781782882078&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;열심히 공부하는 당신이 서류조차 못 넘는 이유 | 요즘IT&quot; data-og-description=&quot;오늘도 퇴근하고 지친 몸으로 다시 모니터 앞에 앉았습니다. 하루가 다르게 쏟아지는 새로운 기술 사이에서 도태되지 않으려고 유명한 강의를 결제하고 주말까지 반납해 가며 스터디에 참여합&quot; data-og-host=&quot;yozm.wishket.com&quot; data-og-source-url=&quot;https://yozm.wishket.com/magazine/detail/3729/&quot; data-og-url=&quot;https://yozm.wishket.com/magazine/detail/3729/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/eJHA2/dJMb9jgGtMq/yYdZ2Gq6kBfLEA5kOifzp1/img.png?width=1999&amp;amp;height=1116&amp;amp;face=1205_477_1348_636,https://scrap.kakaocdn.net/dn/bEaYIs/dJMb8SXG7dc/AL0F0AofzXc2B6VpwObFK0/img.png?width=1999&amp;amp;height=1116&amp;amp;face=1205_477_1348_636,https://scrap.kakaocdn.net/dn/Rybff/dJMb9frOw9Z/tMp6A2hGSHxmNilKmnmB60/img.png?width=1999&amp;amp;height=1116&amp;amp;face=1205_477_1348_636&quot;&gt;&lt;a href=&quot;https://yozm.wishket.com/magazine/detail/3729/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://yozm.wishket.com/magazine/detail/3729/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/eJHA2/dJMb9jgGtMq/yYdZ2Gq6kBfLEA5kOifzp1/img.png?width=1999&amp;amp;height=1116&amp;amp;face=1205_477_1348_636,https://scrap.kakaocdn.net/dn/bEaYIs/dJMb8SXG7dc/AL0F0AofzXc2B6VpwObFK0/img.png?width=1999&amp;amp;height=1116&amp;amp;face=1205_477_1348_636,https://scrap.kakaocdn.net/dn/Rybff/dJMb9frOw9Z/tMp6A2hGSHxmNilKmnmB60/img.png?width=1999&amp;amp;height=1116&amp;amp;face=1205_477_1348_636');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;열심히 공부하는 당신이 서류조차 못 넘는 이유 | 요즘IT&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;오늘도 퇴근하고 지친 몸으로 다시 모니터 앞에 앉았습니다. 하루가 다르게 쏟아지는 새로운 기술 사이에서 도태되지 않으려고 유명한 강의를 결제하고 주말까지 반납해 가며 스터디에 참여합&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;yozm.wishket.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-end=&quot;156&quot; data-start=&quot;148&quot; data-section-id=&quot;zhqekz&quot; data-ke-size=&quot;size26&quot;&gt;1. 요약&lt;/h2&gt;
&lt;p data-end=&quot;242&quot; data-start=&quot;158&quot; data-ke-size=&quot;size16&quot;&gt;이 글은 서류 전형에서 계속 떨어지는 이유를 단순히 &amp;ldquo;공부가 부족해서&amp;rdquo;가 아니라, &lt;b&gt;회사와의 적합성을 제대로 보여주지 못했기 때문&lt;/b&gt;이라고 설명한다.&lt;/p&gt;
&lt;p data-end=&quot;408&quot; data-start=&quot;244&quot; data-ke-size=&quot;size16&quot;&gt;많은 지원자는 이력서를 자신의 노력과 기술을 기록한 문서로 생각한다. 어떤 강의를 들었고, 어떤 기술을 배웠고, 어떤 프로젝트를 했는지 나열한다. 하지만 회사가 보고 싶은 것은 &amp;ldquo;이 사람이 무엇을 공부했는가&amp;rdquo;보다 &amp;ldquo;우리 회사가 겪는 문제를 이 사람이 어떤 방식으로 해결할 수 있는가&amp;rdquo;에 가깝다.&lt;/p&gt;
&lt;p data-end=&quot;592&quot; data-start=&quot;410&quot; data-ke-size=&quot;size16&quot;&gt;글에서는 채용을 실력 경쟁이 아니라 &lt;b&gt;적합성 매칭&lt;/b&gt;으로 본다. 아무리 화려한 기술을 갖고 있어도 회사의 방향, 업무 방식, 문제 상황과 맞지 않으면 좋은 평가를 받기 어렵다. 반대로 경험이 아주 압도적이지 않더라도, 회사가 원하는 문제를 정확히 읽고 자신의 경험을 그 문제의 해결 방식으로 제시하면 서류의 설득력이 커진다.&lt;/p&gt;
&lt;p data-end=&quot;751&quot; data-start=&quot;594&quot; data-ke-size=&quot;size16&quot;&gt;따라서 이력서는 과거를 기록한 로그가 아니라, 회사의 문제에 대한 &lt;b&gt;기술 제안서&lt;/b&gt;처럼 작성되어야 한다. &amp;ldquo;저는 이런 기술을 쓸 수 있습니다&amp;rdquo;가 아니라 &amp;ldquo;귀사가 겪는 이 문제에 대해, 저는 이런 경험과 판단으로 기여할 수 있습니다&amp;rdquo;라는 구조가 필요하다는 것이 글의 중심 주장이다.&lt;/p&gt;
&lt;h2 data-end=&quot;765&quot; data-start=&quot;753&quot; data-section-id=&quot;q7vb31&quot; data-ke-size=&quot;size26&quot;&gt;2. 주요 포인트&lt;/h2&gt;
&lt;p data-end=&quot;1019&quot; data-start=&quot;767&quot; data-ke-size=&quot;size16&quot;&gt;첫째, 채용 공고는 단순한 요구사항 목록이 아니라 회사가 던지는 &lt;b&gt;문제 정의서&lt;/b&gt;다. 많은 지원자는 자격 요건과 우대사항의 기술 스택만 본다. 하지만 글에서는 공고 상단의 조직 소개, 업무 내용, 반복되는 표현에 더 중요한 단서가 숨어 있다고 말한다. 예를 들어 회사가 &amp;ldquo;실시간 데이터 처리&amp;rdquo;를 강조한다면, 단순히 사용 가능한 기술을 말하는 것이 아니라 &amp;ldquo;쏟아지는 데이터를 제때 처리하지 못해 발생하는 문제를 이해하고 있다&amp;rdquo;는 식으로 접근해야 한다.&lt;/p&gt;
&lt;p data-end=&quot;1200&quot; data-start=&quot;1021&quot; data-ke-size=&quot;size16&quot;&gt;둘째, 기술은 목적이 아니라 도구다. 글의 고깃집 비유가 이 부분을 잘 설명한다. 고기 굽는 기술이 뛰어난 사람이라도, 그 기술이 해당 가게의 맛과 철학에 맞지 않으면 오히려 조율 비용이 발생한다. 회사도 마찬가지다. 개발 능력이나 분석 능력 자체보다, 그 기술이 회사의 비즈니스 가치와 어떻게 연결되는지가 더 중요하다.&lt;/p&gt;
&lt;p data-end=&quot;1368&quot; data-start=&quot;1202&quot; data-ke-size=&quot;size16&quot;&gt;셋째, 이력서는 로그가 아니라 제안서여야 한다. &amp;ldquo;앱 초기 아키텍처 설계 및 배포&amp;rdquo;라는 문장은 밋밋하다. 하지만 &amp;ldquo;앱 전담 인력이 전무한 환경에서 초기 아키텍처 설계와 배포를 주도했다&amp;rdquo;라고 쓰면 완전히 다른 이야기가 된다. 같은 경험이라도 상황을 붙이면 책임 범위, 문제 난도, 판단력이 드러난다.&lt;/p&gt;
&lt;p data-end=&quot;1583&quot; data-start=&quot;1370&quot; data-ke-size=&quot;size16&quot;&gt;넷째, 결과 수치만 강조하면 오히려 얕아 보일 수 있다. &amp;ldquo;10초 걸리던 로딩 속도를 1초로 줄였다&amp;rdquo;는 문장은 좋아 보이지만, 맥락이 없으면 우연한 성과처럼 보일 수 있다. 반대로 &amp;ldquo;복잡한 로직 안에서 병목을 찾아 데이터 구조를 개선해 1초를 0.5초로 줄였다&amp;rdquo;는 문장은 엔지니어링 판단을 보여준다. 이 글은 수치 자체보다 그 수치에 도달하기까지의 상황과 판단을 더 중요하게 본다.&lt;/p&gt;
&lt;p data-end=&quot;1795&quot; data-start=&quot;1585&quot; data-ke-size=&quot;size16&quot;&gt;다섯째, AI 시대에는 단순 구현보다 설계와 판단이 더 중요해진다. AI는 정해진 요구를 코드로 바꾸는 일은 빠르게 수행할 수 있다. 하지만 &amp;ldquo;지금 이 설계가 회사의 예산, 고객 상황, 확장 계획을 고려했을 때 적절한가?&amp;rdquo;와 같은 질문에는 쉽게 답하지 못한다. 그러므로 지원자는 자신이 코드를 작성할 수 있다는 것보다, 그 코드를 쓰기까지 어떤 판단을 했는지를 보여줘야 한다.&lt;/p&gt;
&lt;h2 data-end=&quot;1808&quot; data-start=&quot;1797&quot; data-section-id=&quot;j4nis1&quot; data-ke-size=&quot;size26&quot;&gt;3. 중요 개념&lt;/h2&gt;
&lt;p data-end=&quot;1901&quot; data-start=&quot;1810&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;적합성 매칭&lt;/b&gt;&lt;br /&gt;채용을 지원자 간 순위 경쟁으로 보는 것이 아니라, 회사가 가진 빈자리와 지원자의 경험이 얼마나 잘 맞는지 확인하는 과정으로 보는 관점이다.&lt;/p&gt;
&lt;p data-end=&quot;2003&quot; data-start=&quot;1903&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;채용 공고의 행간 읽기&lt;/b&gt;&lt;br /&gt;공고에 적힌 기술 스택만 보는 것이 아니라, 조직 소개, 업무 내용, 반복되는 표현, 회사가 강조하는 방향을 통해 실제 고민을 추론하는 방식이다.&lt;/p&gt;
&lt;p data-end=&quot;2096&quot; data-start=&quot;2005&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;로그형 이력서&lt;/b&gt;&lt;br /&gt;자신이 한 일과 사용 기술을 시간순 또는 항목별로 단순히 나열한 이력서다. 정보는 많지만 회사 입장에서 왜 뽑아야 하는지 판단하기 어렵다.&lt;/p&gt;
&lt;p data-end=&quot;2204&quot; data-start=&quot;2098&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;제안서형 이력서&lt;/b&gt;&lt;br /&gt;회사가 가진 문제를 먼저 읽고, 자신의 경험을 그 문제를 풀 수 있는 근거로 재배치한 이력서다. &amp;ldquo;무엇을 했다&amp;rdquo;보다 &amp;ldquo;어떤 문제를 어떤 판단으로 풀었다&amp;rdquo;에 가깝다.&lt;/p&gt;
&lt;p data-end=&quot;2336&quot; data-start=&quot;2206&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;온보딩 리스크&lt;/b&gt;&lt;br /&gt;지원자가 가진 방식이나 경험이 회사의 업무 방식과 맞지 않아, 적응과 조율에 추가 비용이 발생할 가능성이다. 글에서는 유명한 대형 고깃집 출신 지원자가 작은 가게에 바로 맞지 않을 수 있다는 비유로 설명한다.&lt;/p&gt;
&lt;p data-end=&quot;2451&quot; data-start=&quot;2338&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;비즈니스 맥락&lt;/b&gt;&lt;br /&gt;기술을 적용하는 조직의 목적, 고객, 비용, 운영 방식, 확장 계획 등을 포함한 배경이다. 같은 기술이라도 어떤 회사에서 어떤 문제를 풀기 위해 쓰이는지에 따라 평가가 달라진다.&lt;/p&gt;
&lt;p data-end=&quot;2572&quot; data-start=&quot;2453&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;도메인 특화 지식&lt;/b&gt;&lt;br /&gt;특정 산업이나 업무 영역에서만 중요한 제약, 사용자 행동, 운영 방식, 문제 패턴을 이해하는 지식이다. 금융, 커머스, 제조, 반도체 공정 등 각 분야마다 요구되는 판단 기준이 다르다.&lt;/p&gt;
&lt;h2 data-end=&quot;2585&quot; data-start=&quot;2574&quot; data-section-id=&quot;mlptrv&quot; data-ke-size=&quot;size26&quot;&gt;4. 용어 정리&lt;/h2&gt;
&lt;p data-end=&quot;2680&quot; data-start=&quot;2587&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;JD(Job Description)&lt;/b&gt;&lt;br /&gt;채용 공고의 직무 설명이다. 글에서는 JD를 단순 자격 요건표가 아니라 회사의 문제와 기대 역할이 담긴 문서로 해석한다.&lt;/p&gt;
&lt;p data-end=&quot;2778&quot; data-start=&quot;2682&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;기술 스택&lt;/b&gt;&lt;br /&gt;개발이나 분석에 사용하는 언어, 프레임워크, 도구의 묶음이다. 예를 들어 Python, SQL, React, Docker, AWS 등이 이에 해당한다.&lt;/p&gt;
&lt;p data-end=&quot;2869&quot; data-start=&quot;2780&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;비즈니스 가치&lt;/b&gt;&lt;br /&gt;회사가 실제로 얻고자 하는 효과다. 매출 증가, 비용 절감, 사용자 불편 감소, 운영 효율 개선, 장애 대응 시간 단축 등이 포함된다.&lt;/p&gt;
&lt;p data-end=&quot;2941&quot; data-start=&quot;2871&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;설득 구조&lt;/b&gt;&lt;br /&gt;지원서에서 자신의 강점을 단순 주장으로 끝내지 않고, 주장 &amp;rarr; 근거 &amp;rarr; 경험 순서로 납득시키는 방식이다.&lt;/p&gt;
&lt;p data-end=&quot;3039&quot; data-start=&quot;2943&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;상황-판단-결과 구조&lt;/b&gt;&lt;br /&gt;경험을 설명할 때 문제 상황, 본인이 내린 판단, 실행 결과를 함께 보여주는 방식이다. 단순 결과보다 지원자의 사고 과정을 더 잘 드러낸다.&lt;/p&gt;
&lt;p data-end=&quot;3039&quot; data-start=&quot;2943&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-end=&quot;4508&quot; data-start=&quot;4498&quot; data-section-id=&quot;15gqk9w&quot; data-ke-size=&quot;size26&quot;&gt;5. 인사이트&lt;/h2&gt;
&lt;p data-end=&quot;4568&quot; data-start=&quot;4510&quot; data-ke-size=&quot;size16&quot;&gt;이 글이 주는 가장 중요한 메시지는 &amp;ldquo;더 많이 공부하는 것&amp;rdquo;과 &amp;ldquo;더 잘 어필하는 것&amp;rdquo;은 다르다는 점이다.&lt;/p&gt;
&lt;p data-end=&quot;4691&quot; data-start=&quot;4570&quot; data-ke-size=&quot;size16&quot;&gt;취업 준비자는 불안할수록 기술을 더 쌓으려 한다. 새로운 강의를 듣고, 자격증을 준비하고, 프로젝트를 하나 더 만든다. 물론 공부는 필요하다. 하지만 회사의 문제와 연결되지 않은 공부는 서류에서 힘을 발휘하기 어렵다.&lt;/p&gt;
&lt;p data-end=&quot;4934&quot; data-start=&quot;4693&quot; data-ke-size=&quot;size16&quot;&gt;특히 준영님처럼 프로젝트 경험이 많은 경우에는 더 그렇다. 경험이 부족해서 문제가 되는 것이 아니라, 경험을 회사의 언어로 번역하지 못하면 평가자가 그 가치를 알아보기 어렵다. 웨이퍼 결함 분석, 후공정 분석, FDC 대시보드, OES/RFM/EV 데이터 통합, threshold 비교, KPT 회고 같은 자료가 많아도, 그것이 &amp;ldquo;지원 회사의 어떤 문제를 해결할 수 있는가&amp;rdquo;로 연결되지 않으면 단순 프로젝트 목록처럼 보일 수 있다.&lt;/p&gt;
&lt;p data-end=&quot;4975&quot; data-start=&quot;4936&quot; data-ke-size=&quot;size16&quot;&gt;앞으로 자기소개서나 포트폴리오를 작성할 때는 다음 순서가 더 적합하다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-end=&quot;5132&quot; data-start=&quot;4977&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-end=&quot;5012&quot; data-start=&quot;4977&quot; data-section-id=&quot;gr8eiu&quot;&gt;회사가 채용 공고에서 반복적으로 말하는 문제를 찾는다.&lt;/li&gt;
&lt;li data-end=&quot;5039&quot; data-start=&quot;5013&quot; data-section-id=&quot;4bblda&quot;&gt;그 문제와 연결되는 내 경험을 고른다.&lt;/li&gt;
&lt;li data-end=&quot;5083&quot; data-start=&quot;5040&quot; data-section-id=&quot;l2xur6&quot;&gt;경험을 기술명 중심이 아니라 상황, 판단, 결과 중심으로 다시 쓴다.&lt;/li&gt;
&lt;li data-end=&quot;5132&quot; data-start=&quot;5084&quot; data-section-id=&quot;ockrvh&quot;&gt;마지막에 &amp;ldquo;그래서 이 회사에서 어떤 방식으로 기여할 수 있는가&amp;rdquo;를 분명히 적는다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-end=&quot;5191&quot; data-start=&quot;5134&quot; data-ke-size=&quot;size16&quot;&gt;즉, 지원서는 나를 설명하는 문서이기도 하지만, 더 정확히는 회사의 문제에 대한 나의 답변이어야 한다.&lt;/p&gt;
&lt;h2 data-end=&quot;5204&quot; data-start=&quot;5193&quot; data-section-id=&quot;74d71z&quot; data-ke-size=&quot;size26&quot;&gt;6. 추천 사유&lt;/h2&gt;
&lt;p data-end=&quot;5369&quot; data-start=&quot;5206&quot; data-ke-size=&quot;size16&quot;&gt;이 아티클은 취업 준비자가 흔히 빠지는 함정을 잘 짚는다. 많은 사람은 서류 탈락을 겪으면 &amp;ldquo;스펙이 부족한가?&amp;rdquo;, &amp;ldquo;기술을 더 배워야 하나?&amp;rdquo;, &amp;ldquo;프로젝트를 하나 더 해야 하나?&amp;rdquo;라고 생각한다. 하지만 이 글은 그보다 먼저 &amp;ldquo;내 경험이 회사의 문제와 연결되어 보이는가?&amp;rdquo;를 점검하라고 말한다.&lt;/p&gt;
&lt;p data-end=&quot;5504&quot; data-start=&quot;5371&quot; data-ke-size=&quot;size16&quot;&gt;특히 개발자, 데이터 분석가, 공정 엔지니어처럼 프로젝트 기반으로 자신을 증명해야 하는 지원자에게 도움이 된다. 프로젝트가 많아도 표현 방식이 로그형이면 약하고, 프로젝트가 많지 않아도 문제 해결 관점이 분명하면 강해질 수 있기 때문이다.&lt;/p&gt;
&lt;p data-end=&quot;5723&quot; data-start=&quot;5506&quot; data-ke-size=&quot;size16&quot;&gt;준영님에게도 이 글은 바로 적용 가능성이 높다. 지금까지 진행한 반도체 데이터 분석 프로젝트와 대시보드 프로젝트는 단순히 &amp;ldquo;만들었다&amp;rdquo;로 정리하면 힘이 줄어든다. 하지만 &amp;ldquo;공정 이상을 놓치지 않기 위해 어떤 지표를 우선했는지&amp;rdquo;, &amp;ldquo;현장 엔지니어가 이해할 수 있도록 어떤 구조로 시각화했는지&amp;rdquo;, &amp;ldquo;데이터 한계와 드리프트 문제를 어떻게 인식했는지&amp;rdquo;까지 쓰면 훨씬 설득력 있는 포트폴리오가 된다.&lt;/p&gt;
&lt;p data-is-only-node=&quot;&quot; data-is-last-node=&quot;&quot; data-end=&quot;5786&quot; data-start=&quot;5725&quot; data-ke-size=&quot;size16&quot;&gt;결국 이 글은 취업 준비의 방향을 &amp;ldquo;기술 추가&amp;rdquo;에서 &amp;ldquo;문제 연결&amp;rdquo;로 바꾸게 만든다는 점에서 읽을 가치가 있다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이외에 포트폴리오 작성으로 많이 고민했다.&lt;/p&gt;</description>
      <category>QAQC_5기 부트캠프</category>
      <author>두껍22</author>
      <guid isPermaLink="true">https://eeengineer.tistory.com/15</guid>
      <comments>https://eeengineer.tistory.com/15#entry15comment</comments>
      <pubDate>Thu, 18 Jun 2026 20:53:33 +0900</pubDate>
    </item>
    <item>
      <title>[내일배움캠프] QA/QC_5기 본캠프(0617)</title>
      <link>https://eeengineer.tistory.com/14</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;오늘은 하이닉스 공고 올라와서 이력서나 열심히 작성했다..&lt;/p&gt;</description>
      <category>QAQC_5기 부트캠프</category>
      <author>두껍22</author>
      <guid isPermaLink="true">https://eeengineer.tistory.com/14</guid>
      <comments>https://eeengineer.tistory.com/14#entry14comment</comments>
      <pubDate>Wed, 17 Jun 2026 20:31:02 +0900</pubDate>
    </item>
    <item>
      <title>[내일배움캠프] QA/QC_5기 본캠프(0616)</title>
      <link>https://eeengineer.tistory.com/13</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;최종 프로젝트 전에 경험 정리가 필요할 것 같아서 개인 노션을 개설하고 그곳에 경험 정리를 진행했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지피티에 이력서를 좀 먹여놨더니 md파일을 잘 써줘서 잘 정리된것 같다.&lt;/p&gt;</description>
      <category>QAQC_5기 부트캠프</category>
      <author>두껍22</author>
      <guid isPermaLink="true">https://eeengineer.tistory.com/13</guid>
      <comments>https://eeengineer.tistory.com/13#entry13comment</comments>
      <pubDate>Tue, 16 Jun 2026 20:43:51 +0900</pubDate>
    </item>
    <item>
      <title>[내일배움캠프] QA/QC_5기 본캠프(0608)</title>
      <link>https://eeengineer.tistory.com/12</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;오늘은 대시보드 구성 열심히 해봤다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;근데 중간중간 계속 분석 내용이나 모델이 변경돼서 보완하려고 바빴다&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;구성해본 대시보드&lt;/p&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2557&quot; data-origin-height=&quot;1263&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c13Xtx/dJMcafUrN5A/PU6TkaJIUgrDLY1OBFKTBK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c13Xtx/dJMcafUrN5A/PU6TkaJIUgrDLY1OBFKTBK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c13Xtx/dJMcafUrN5A/PU6TkaJIUgrDLY1OBFKTBK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc13Xtx%2FdJMcafUrN5A%2FPU6TkaJIUgrDLY1OBFKTBK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2557&quot; height=&quot;1263&quot; data-origin-width=&quot;2557&quot; data-origin-height=&quot;1263&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2557&quot; data-origin-height=&quot;1257&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bfdrzv/dJMcaip4iZ7/YMRseCYoehw2nPG5EFX0D0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bfdrzv/dJMcaip4iZ7/YMRseCYoehw2nPG5EFX0D0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bfdrzv/dJMcaip4iZ7/YMRseCYoehw2nPG5EFX0D0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbfdrzv%2FdJMcaip4iZ7%2FYMRseCYoehw2nPG5EFX0D0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2557&quot; height=&quot;1257&quot; data-origin-width=&quot;2557&quot; data-origin-height=&quot;1257&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만들어보긴 했는데 가독성이 떨어져서 버릴 것 같다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이후는 자소서 쓰다 자렵니다&lt;/p&gt;</description>
      <category>QAQC_5기 부트캠프/실전 프로젝트</category>
      <author>두껍22</author>
      <guid isPermaLink="true">https://eeengineer.tistory.com/12</guid>
      <comments>https://eeengineer.tistory.com/12#entry12comment</comments>
      <pubDate>Mon, 8 Jun 2026 20:52:41 +0900</pubDate>
    </item>
    <item>
      <title>[내일배움캠프] QA/QC_5기 본캠프(0604)</title>
      <link>https://eeengineer.tistory.com/11</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;오늘 한거&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#&amp;nbsp;TIL&amp;nbsp;&amp;mdash;&amp;nbsp;Unified&amp;nbsp;Features&amp;nbsp;기반&amp;nbsp;FDC&amp;nbsp;조기경보&amp;nbsp;시스템&amp;nbsp;재구축&amp;nbsp;및&amp;nbsp;기존&amp;nbsp;방식&amp;nbsp;비교 &lt;br /&gt;&lt;br /&gt;##&amp;nbsp;오늘&amp;nbsp;한&amp;nbsp;일 &lt;br /&gt;&lt;br /&gt;오늘은&amp;nbsp;기존에&amp;nbsp;진행했던&amp;nbsp;`metal_etch_fdc`&amp;nbsp;방식과&amp;nbsp;별도로,&amp;nbsp;`unified_features.csv`를&amp;nbsp;기반으로&amp;nbsp;FDC&amp;nbsp;조기경보&amp;nbsp;시스템을&amp;nbsp;처음부터&amp;nbsp;다시&amp;nbsp;구축했다.&amp;nbsp;기존&amp;nbsp;방식은&amp;nbsp;EV/OES/RFM&amp;nbsp;원본&amp;nbsp;데이터를&amp;nbsp;직접&amp;nbsp;정렬하고&amp;nbsp;bin&amp;nbsp;단위&amp;nbsp;anomaly&amp;nbsp;score를&amp;nbsp;계산하는&amp;nbsp;구조였다면,&amp;nbsp;이번&amp;nbsp;방식은&amp;nbsp;이미&amp;nbsp;wide-format으로&amp;nbsp;펼쳐진&amp;nbsp;`unified_features.csv`의&amp;nbsp;컬럼명을&amp;nbsp;파싱해&amp;nbsp;source&amp;nbsp;/&amp;nbsp;sensor&amp;nbsp;/&amp;nbsp;time&amp;nbsp;index&amp;nbsp;구조를&amp;nbsp;복원하는&amp;nbsp;방향으로&amp;nbsp;진행했다. &lt;br /&gt;&lt;br /&gt;즉,&amp;nbsp;row&amp;nbsp;방향의&amp;nbsp;시계열이&amp;nbsp;아니라&amp;nbsp;컬럼&amp;nbsp;방향에&amp;nbsp;펼쳐진&amp;nbsp;시계열&amp;nbsp;구조를&amp;nbsp;다시&amp;nbsp;해석하고,&amp;nbsp;이를&amp;nbsp;기반으로&amp;nbsp;통계&amp;nbsp;검정,&amp;nbsp;fault&amp;nbsp;type별&amp;nbsp;이탈도&amp;nbsp;분석,&amp;nbsp;머신러닝,&amp;nbsp;MPCA,&amp;nbsp;EWMA/CUSUM,&amp;nbsp;최종&amp;nbsp;경고&amp;nbsp;정책,&amp;nbsp;Streamlit&amp;nbsp;대시보드까지&amp;nbsp;구성했다. &lt;br /&gt;&lt;br /&gt;--- &lt;br /&gt;&lt;br /&gt;##&amp;nbsp;1.&amp;nbsp;Unified&amp;nbsp;데이터&amp;nbsp;구조&amp;nbsp;해석 &lt;br /&gt;&lt;br /&gt;`unified_features.csv`는&amp;nbsp;단순&amp;nbsp;통계&amp;nbsp;요약&amp;nbsp;데이터가&amp;nbsp;아니라,&amp;nbsp;컬럼명에&amp;nbsp;source,&amp;nbsp;sensor,&amp;nbsp;time&amp;nbsp;index가&amp;nbsp;포함된&amp;nbsp;wide-format&amp;nbsp;시계열&amp;nbsp;데이터로&amp;nbsp;해석했다. &lt;br /&gt;&lt;br /&gt;예시는&amp;nbsp;다음과&amp;nbsp;같다. &lt;br /&gt;&lt;br /&gt;```text &lt;br /&gt;EV__Pressure_t00 &lt;br /&gt;EV__Pressure_t01 &lt;br /&gt;OES__395.8_t00 &lt;br /&gt;OES__395.8_t01 &lt;br /&gt;RFM__S1V1_t00 &lt;br /&gt;RFM__S1V1_t01 &lt;br /&gt;``` &lt;br /&gt;&lt;br /&gt;이를&amp;nbsp;통해&amp;nbsp;EV,&amp;nbsp;OES,&amp;nbsp;RFM의&amp;nbsp;시계열&amp;nbsp;구조를&amp;nbsp;복원했다. &lt;br /&gt;&lt;br /&gt;|&amp;nbsp;Source&amp;nbsp;|&amp;nbsp;Sensor&amp;nbsp;수&amp;nbsp;|&amp;nbsp;Time&amp;nbsp;index&amp;nbsp;수&amp;nbsp;|&amp;nbsp;Feature&amp;nbsp;수&amp;nbsp;| &lt;br /&gt;|&amp;nbsp;------&amp;nbsp;|&amp;nbsp;-------:&amp;nbsp;|&amp;nbsp;-----------:&amp;nbsp;|&amp;nbsp;--------:&amp;nbsp;| &lt;br /&gt;|&amp;nbsp;EV&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;17&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;100&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1,700&amp;nbsp;| &lt;br /&gt;|&amp;nbsp;OES&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;129&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;38&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4,902&amp;nbsp;| &lt;br /&gt;|&amp;nbsp;RFM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;67&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;28&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1,876&amp;nbsp;| &lt;br /&gt;&lt;br /&gt;전체&amp;nbsp;wafer는&amp;nbsp;123개였고,&amp;nbsp;calibration은&amp;nbsp;103개,&amp;nbsp;fault는&amp;nbsp;20개였다. &lt;br /&gt;fault는&amp;nbsp;20종이&amp;nbsp;각각&amp;nbsp;1개씩&amp;nbsp;존재하는&amp;nbsp;구조였다. &lt;br /&gt;&lt;br /&gt;--- &lt;br /&gt;&lt;br /&gt;##&amp;nbsp;2.&amp;nbsp;통계&amp;nbsp;검정&amp;nbsp;결과와&amp;nbsp;한계 &lt;br /&gt;&lt;br /&gt;처음에는&amp;nbsp;calibration&amp;nbsp;103개와&amp;nbsp;fault&amp;nbsp;전체&amp;nbsp;20개를&amp;nbsp;비교하는&amp;nbsp;방식으로&amp;nbsp;Mann-Whitney&amp;nbsp;U&amp;nbsp;test,&amp;nbsp;Welch&amp;nbsp;t-test,&amp;nbsp;FDR&amp;nbsp;보정을&amp;nbsp;수행했다. &lt;br /&gt;&lt;br /&gt;결과적으로&amp;nbsp;FDR&amp;nbsp;보정&amp;nbsp;후&amp;nbsp;유의&amp;nbsp;feature는&amp;nbsp;0개였다. &lt;br /&gt;&lt;br /&gt;이&amp;nbsp;결과는&amp;nbsp;&amp;ldquo;정상과&amp;nbsp;fault&amp;nbsp;차이가&amp;nbsp;없다&amp;rdquo;는&amp;nbsp;의미가&amp;nbsp;아니라,&amp;nbsp;fault&amp;nbsp;20개가&amp;nbsp;서로&amp;nbsp;다른&amp;nbsp;fault&amp;nbsp;type으로&amp;nbsp;구성되어&amp;nbsp;신호가&amp;nbsp;희석된&amp;nbsp;결과로&amp;nbsp;해석했다. &lt;br /&gt;&lt;br /&gt;예를&amp;nbsp;들어&amp;nbsp;RF&amp;nbsp;계열&amp;nbsp;fault는&amp;nbsp;RFM에서&amp;nbsp;강하게&amp;nbsp;나타날&amp;nbsp;수&amp;nbsp;있고,&amp;nbsp;BCl3&amp;nbsp;계열&amp;nbsp;fault는&amp;nbsp;EV&amp;nbsp;gas&amp;nbsp;flow&amp;nbsp;쪽에서&amp;nbsp;나타날&amp;nbsp;수&amp;nbsp;있으며,&amp;nbsp;Pr&amp;nbsp;계열&amp;nbsp;fault는&amp;nbsp;OES에서&amp;nbsp;나타날&amp;nbsp;수&amp;nbsp;있다.&amp;nbsp;그런데&amp;nbsp;이들을&amp;nbsp;모두&amp;nbsp;하나의&amp;nbsp;fault&amp;nbsp;그룹으로&amp;nbsp;묶으면&amp;nbsp;각&amp;nbsp;fault별&amp;nbsp;특성이&amp;nbsp;평균화되어&amp;nbsp;단변량&amp;nbsp;검정에서&amp;nbsp;뚜렷하게&amp;nbsp;드러나지&amp;nbsp;않는다. &lt;br /&gt;&lt;br /&gt;따라서&amp;nbsp;fault&amp;nbsp;전체&amp;nbsp;통계&amp;nbsp;검정만으로&amp;nbsp;feature를&amp;nbsp;고르는&amp;nbsp;방식은&amp;nbsp;한계가&amp;nbsp;있었다. &lt;br /&gt;&lt;br /&gt;--- &lt;br /&gt;&lt;br /&gt;##&amp;nbsp;3.&amp;nbsp;fault&amp;nbsp;type별&amp;nbsp;정상&amp;nbsp;기준&amp;nbsp;이탈도&amp;nbsp;분석 &lt;br /&gt;&lt;br /&gt;이&amp;nbsp;문제를&amp;nbsp;보완하기&amp;nbsp;위해&amp;nbsp;3-B&amp;nbsp;단계에서&amp;nbsp;fault&amp;nbsp;type별로&amp;nbsp;calibration&amp;nbsp;분포와&amp;nbsp;비교하는&amp;nbsp;이탈도&amp;nbsp;분석을&amp;nbsp;진행했다. &lt;br /&gt;&lt;br /&gt;중요한&amp;nbsp;점은&amp;nbsp;fault&amp;nbsp;type별&amp;nbsp;샘플이&amp;nbsp;1개뿐이므로&amp;nbsp;이&amp;nbsp;분석은&amp;nbsp;가설검정이&amp;nbsp;아니라는&amp;nbsp;것이다.&amp;nbsp;p-value나&amp;nbsp;유의성으로&amp;nbsp;해석하지&amp;nbsp;않고,&amp;nbsp;calibration&amp;nbsp;기준에서&amp;nbsp;얼마나&amp;nbsp;벗어났는지를&amp;nbsp;z-score,&amp;nbsp;&amp;plusmn;3&amp;sigma;&amp;nbsp;초과&amp;nbsp;여부,&amp;nbsp;RMS-z로&amp;nbsp;확인했다. &lt;br /&gt;&lt;br /&gt;주요&amp;nbsp;결과는&amp;nbsp;다음과&amp;nbsp;같다. &lt;br /&gt;&lt;br /&gt;|&amp;nbsp;Fault&amp;nbsp;계열&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;두드러진&amp;nbsp;Source&amp;nbsp;|&amp;nbsp;해석&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;| &lt;br /&gt;|&amp;nbsp;---------------&amp;nbsp;|&amp;nbsp;-----------&amp;nbsp;|&amp;nbsp;---------------------------&amp;nbsp;| &lt;br /&gt;|&amp;nbsp;RF/TCP&amp;nbsp;일부&amp;nbsp;fault&amp;nbsp;|&amp;nbsp;RFM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;RF&amp;nbsp;전압/전류/고조파&amp;nbsp;계열&amp;nbsp;신호&amp;nbsp;이탈&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;| &lt;br /&gt;|&amp;nbsp;BCl3&amp;nbsp;-5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;EV&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;BCl3&amp;nbsp;Flow&amp;nbsp;관련&amp;nbsp;이탈&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;| &lt;br /&gt;|&amp;nbsp;Pr&amp;nbsp;+2&amp;nbsp;/&amp;nbsp;Pr&amp;nbsp;+3&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;OES&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;특정&amp;nbsp;OES&amp;nbsp;파장대&amp;nbsp;이탈&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;| &lt;br /&gt;|&amp;nbsp;Cl2&amp;nbsp;계열&amp;nbsp;일부&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;OES&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;플라즈마&amp;nbsp;emission&amp;nbsp;profile&amp;nbsp;변화&amp;nbsp;후보&amp;nbsp;| &lt;br /&gt;&lt;br /&gt;특히&amp;nbsp;`RF&amp;nbsp;+10`,&amp;nbsp;`TCP&amp;nbsp;+30`에서는&amp;nbsp;RFM&amp;nbsp;`S3I2`&amp;nbsp;관련&amp;nbsp;이탈이&amp;nbsp;매우&amp;nbsp;크게&amp;nbsp;나타났다.&amp;nbsp;다만&amp;nbsp;z-score가&amp;nbsp;수천&amp;nbsp;단위로&amp;nbsp;커진&amp;nbsp;값은&amp;nbsp;calibration&amp;nbsp;표준편차가&amp;nbsp;매우&amp;nbsp;작아서&amp;nbsp;과대평가되었을&amp;nbsp;가능성이&amp;nbsp;있으므로,&amp;nbsp;실제&amp;nbsp;원인으로&amp;nbsp;단정하지&amp;nbsp;않고&amp;nbsp;이상&amp;nbsp;후보&amp;nbsp;변수로&amp;nbsp;해석했다. &lt;br /&gt;&lt;br /&gt;--- &lt;br /&gt;&lt;br /&gt;##&amp;nbsp;4.&amp;nbsp;머신러닝&amp;nbsp;모델&amp;nbsp;비교 &lt;br /&gt;&lt;br /&gt;다음으로&amp;nbsp;정상/fault&amp;nbsp;이진&amp;nbsp;분류&amp;nbsp;모델을&amp;nbsp;비교했다. &lt;br /&gt;&lt;br /&gt;사용한&amp;nbsp;모델은&amp;nbsp;다음과&amp;nbsp;같다. &lt;br /&gt;&lt;br /&gt;```text &lt;br /&gt;Logistic&amp;nbsp;Regression &lt;br /&gt;RandomForest &lt;br /&gt;ExtraTrees &lt;br /&gt;LightGBM &lt;br /&gt;XGBoost &lt;br /&gt;CatBoost &lt;br /&gt;``` &lt;br /&gt;&lt;br /&gt;검증&amp;nbsp;방식은&amp;nbsp;StratifiedKFold를&amp;nbsp;사용했고,&amp;nbsp;feature&amp;nbsp;selection은&amp;nbsp;fold&amp;nbsp;내부에서&amp;nbsp;수행하여&amp;nbsp;leakage를&amp;nbsp;줄이는&amp;nbsp;방향으로&amp;nbsp;설계했다. &lt;br /&gt;&lt;br /&gt;최선&amp;nbsp;모델은&amp;nbsp;`RandomForest,&amp;nbsp;k=100`이었다. &lt;br /&gt;&lt;br /&gt;|&amp;nbsp;지표&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;값&amp;nbsp;| &lt;br /&gt;|&amp;nbsp;---------&amp;nbsp;|&amp;nbsp;-----:&amp;nbsp;| &lt;br /&gt;|&amp;nbsp;Accuracy&amp;nbsp;&amp;nbsp;|&amp;nbsp;0.9106&amp;nbsp;| &lt;br /&gt;|&amp;nbsp;Precision&amp;nbsp;|&amp;nbsp;0.9091&amp;nbsp;| &lt;br /&gt;|&amp;nbsp;Recall&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;0.5000&amp;nbsp;| &lt;br /&gt;|&amp;nbsp;F1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;0.6452&amp;nbsp;| &lt;br /&gt;|&amp;nbsp;ROC-AUC&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;0.8830&amp;nbsp;| &lt;br /&gt;|&amp;nbsp;PR-AUC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;0.7767&amp;nbsp;| &lt;br /&gt;|&amp;nbsp;FN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10&amp;nbsp;| &lt;br /&gt;|&amp;nbsp;FP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;| &lt;br /&gt;&lt;br /&gt;정상&amp;nbsp;wafer는&amp;nbsp;잘&amp;nbsp;구분했지만,&amp;nbsp;fault&amp;nbsp;20개&amp;nbsp;중&amp;nbsp;10개를&amp;nbsp;놓쳤다. &lt;br /&gt;즉,&amp;nbsp;머신러닝&amp;nbsp;단독&amp;nbsp;모델은&amp;nbsp;오경보는&amp;nbsp;적지만&amp;nbsp;fault&amp;nbsp;미탐지가&amp;nbsp;많아&amp;nbsp;FDC&amp;nbsp;조기경보&amp;nbsp;시스템으로는&amp;nbsp;부족했다. &lt;br /&gt;&lt;br /&gt;이&amp;nbsp;결과를&amp;nbsp;통해&amp;nbsp;ML&amp;nbsp;모델은&amp;nbsp;최종&amp;nbsp;판단용&amp;nbsp;단독&amp;nbsp;모델이&amp;nbsp;아니라,&amp;nbsp;`fault_probability`를&amp;nbsp;제공하는&amp;nbsp;보조&amp;nbsp;신호로&amp;nbsp;활용하는&amp;nbsp;방향이&amp;nbsp;적절하다고&amp;nbsp;판단했다. &lt;br /&gt;&lt;br /&gt;--- &lt;br /&gt;&lt;br /&gt;##&amp;nbsp;5.&amp;nbsp;MPCA&amp;nbsp;T&amp;sup2;/Q&amp;nbsp;score&amp;nbsp;적용 &lt;br /&gt;&lt;br /&gt;ML&amp;nbsp;모델이&amp;nbsp;놓친&amp;nbsp;fault를&amp;nbsp;보완하기&amp;nbsp;위해&amp;nbsp;EV,&amp;nbsp;OES,&amp;nbsp;RFM을&amp;nbsp;각각&amp;nbsp;block으로&amp;nbsp;보고&amp;nbsp;MPCA를&amp;nbsp;적용했다. &lt;br /&gt;&lt;br /&gt;PCA는&amp;nbsp;calibration&amp;nbsp;wafer&amp;nbsp;103개만&amp;nbsp;사용해&amp;nbsp;학습했고,&amp;nbsp;fault&amp;nbsp;wafer는&amp;nbsp;학습에&amp;nbsp;사용하지&amp;nbsp;않았다.&amp;nbsp;정상&amp;nbsp;기준&amp;nbsp;PCA&amp;nbsp;모델을&amp;nbsp;만든&amp;nbsp;뒤,&amp;nbsp;각&amp;nbsp;wafer가&amp;nbsp;정상&amp;nbsp;패턴에서&amp;nbsp;얼마나&amp;nbsp;벗어났는지&amp;nbsp;T&amp;sup2;&amp;nbsp;score와&amp;nbsp;Q&amp;nbsp;residual&amp;nbsp;score로&amp;nbsp;계산했다. &lt;br /&gt;&lt;br /&gt;*&amp;nbsp;T&amp;sup2;&amp;nbsp;score:&amp;nbsp;PCA&amp;nbsp;score&amp;nbsp;공간에서&amp;nbsp;정상&amp;nbsp;패턴과&amp;nbsp;얼마나&amp;nbsp;멀리&amp;nbsp;떨어졌는지 &lt;br /&gt;*&amp;nbsp;Q&amp;nbsp;score:&amp;nbsp;PCA가&amp;nbsp;설명하지&amp;nbsp;못한&amp;nbsp;잔차&amp;nbsp;에너지 &lt;br /&gt;&lt;br /&gt;결과적으로&amp;nbsp;Q&amp;nbsp;score가&amp;nbsp;T&amp;sup2;&amp;nbsp;score보다&amp;nbsp;fault&amp;nbsp;탐지에&amp;nbsp;더&amp;nbsp;민감했다. &lt;br /&gt;&lt;br /&gt;|&amp;nbsp;Score&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;fault&amp;nbsp;초과&amp;nbsp;수&amp;nbsp;| &lt;br /&gt;|&amp;nbsp;---------&amp;nbsp;|&amp;nbsp;---------:&amp;nbsp;| &lt;br /&gt;|&amp;nbsp;EV_Q&amp;nbsp;95%&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;18/20&amp;nbsp;| &lt;br /&gt;|&amp;nbsp;OES_Q&amp;nbsp;95%&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;19/20&amp;nbsp;| &lt;br /&gt;|&amp;nbsp;RFM_Q&amp;nbsp;95%&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;15/20&amp;nbsp;| &lt;br /&gt;&lt;br /&gt;가장&amp;nbsp;중요한&amp;nbsp;결과는&amp;nbsp;ML에서&amp;nbsp;놓친&amp;nbsp;FN&amp;nbsp;wafer&amp;nbsp;10개를&amp;nbsp;MPCA가&amp;nbsp;모두&amp;nbsp;탐지했다는&amp;nbsp;점이다. &lt;br /&gt;&lt;br /&gt;즉,&amp;nbsp;ML&amp;nbsp;단독&amp;nbsp;분류에서는&amp;nbsp;놓친&amp;nbsp;fault도&amp;nbsp;정상&amp;nbsp;PCA&amp;nbsp;패턴에서&amp;nbsp;벗어난&amp;nbsp;잔차&amp;nbsp;기반&amp;nbsp;이상으로는&amp;nbsp;잡을&amp;nbsp;수&amp;nbsp;있었다. &lt;br /&gt;&lt;br /&gt;--- &lt;br /&gt;&lt;br /&gt;##&amp;nbsp;6.&amp;nbsp;EWMA&amp;nbsp;/&amp;nbsp;CUSUM&amp;nbsp;조기경보 &lt;br /&gt;&lt;br /&gt;MPCA&amp;nbsp;raw&amp;nbsp;score는&amp;nbsp;fault&amp;nbsp;탐지는&amp;nbsp;잘했지만,&amp;nbsp;calibration&amp;nbsp;false&amp;nbsp;alarm이&amp;nbsp;너무&amp;nbsp;높았다. &lt;br /&gt;&lt;br /&gt;특히&amp;nbsp;raw_Q와&amp;nbsp;raw_any는&amp;nbsp;fault&amp;nbsp;recall은&amp;nbsp;100%였지만&amp;nbsp;calibration&amp;nbsp;오탐이&amp;nbsp;99~100%&amp;nbsp;수준으로&amp;nbsp;나타났다.&amp;nbsp;즉,&amp;nbsp;fault는&amp;nbsp;다&amp;nbsp;잡지만&amp;nbsp;정상도&amp;nbsp;거의&amp;nbsp;다&amp;nbsp;잡는&amp;nbsp;문제가&amp;nbsp;있었다. &lt;br /&gt;&lt;br /&gt;이를&amp;nbsp;보완하기&amp;nbsp;위해&amp;nbsp;EWMA와&amp;nbsp;CUSUM을&amp;nbsp;적용했다. &lt;br /&gt;&lt;br /&gt;*&amp;nbsp;EWMA:&amp;nbsp;최근&amp;nbsp;이상&amp;nbsp;추세를&amp;nbsp;부드럽게&amp;nbsp;추적 &lt;br /&gt;*&amp;nbsp;CUSUM:&amp;nbsp;작은&amp;nbsp;이상&amp;nbsp;신호가&amp;nbsp;지속적으로&amp;nbsp;누적되는지&amp;nbsp;감지 &lt;br /&gt;&lt;br /&gt;결과적으로&amp;nbsp;CUSUM&amp;nbsp;Q가&amp;nbsp;가장&amp;nbsp;현실적인&amp;nbsp;후보였다. &lt;br /&gt;&lt;br /&gt;|&amp;nbsp;방법&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;Fault&amp;nbsp;Recall&amp;nbsp;|&amp;nbsp;Calibration&amp;nbsp;FAR&amp;nbsp;| &lt;br /&gt;|&amp;nbsp;-------&amp;nbsp;|&amp;nbsp;-----------:&amp;nbsp;|&amp;nbsp;--------------:&amp;nbsp;| &lt;br /&gt;|&amp;nbsp;raw_Q&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1.000&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.990&amp;nbsp;| &lt;br /&gt;|&amp;nbsp;raw_any&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1.000&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1.000&amp;nbsp;| &lt;br /&gt;|&amp;nbsp;ewma_Q&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1.000&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.175&amp;nbsp;| &lt;br /&gt;|&amp;nbsp;cusum_Q&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1.000&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.165&amp;nbsp;| &lt;br /&gt;&lt;br /&gt;CUSUM&amp;nbsp;Q는&amp;nbsp;fault&amp;nbsp;탐지율을&amp;nbsp;유지하면서&amp;nbsp;calibration&amp;nbsp;오탐을&amp;nbsp;크게&amp;nbsp;줄였다. &lt;br /&gt;&lt;br /&gt;--- &lt;br /&gt;&lt;br /&gt;##&amp;nbsp;7.&amp;nbsp;최종&amp;nbsp;경고&amp;nbsp;정책&amp;nbsp;선택 &lt;br /&gt;&lt;br /&gt;최종적으로&amp;nbsp;ML&amp;nbsp;fault&amp;nbsp;probability와&amp;nbsp;CUSUM&amp;nbsp;Q,&amp;nbsp;warning/critical&amp;nbsp;ratio를&amp;nbsp;결합한&amp;nbsp;`E_ml_cusum`&amp;nbsp;정책을&amp;nbsp;선택했다. &lt;br /&gt;&lt;br /&gt;최종&amp;nbsp;성능은&amp;nbsp;다음과&amp;nbsp;같다. &lt;br /&gt;&lt;br /&gt;|&amp;nbsp;항목&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;결과&amp;nbsp;| &lt;br /&gt;|&amp;nbsp;-----------------------&amp;nbsp;|&amp;nbsp;-----:&amp;nbsp;| &lt;br /&gt;|&amp;nbsp;Fault&amp;nbsp;탐지&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;20/20&amp;nbsp;| &lt;br /&gt;|&amp;nbsp;Fault&amp;nbsp;recall&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;1.000&amp;nbsp;| &lt;br /&gt;|&amp;nbsp;Critical&amp;nbsp;recall&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;1.000&amp;nbsp;| &lt;br /&gt;|&amp;nbsp;Calibration&amp;nbsp;false&amp;nbsp;alarm&amp;nbsp;|&amp;nbsp;&amp;nbsp;9/103&amp;nbsp;| &lt;br /&gt;|&amp;nbsp;Calibration&amp;nbsp;FAR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;8.7%&amp;nbsp;| &lt;br /&gt;|&amp;nbsp;ML&amp;nbsp;FN&amp;nbsp;보완&amp;nbsp;탐지&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;10/10&amp;nbsp;| &lt;br /&gt;|&amp;nbsp;평균&amp;nbsp;lead_time_ratio&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;0.9926&amp;nbsp;| &lt;br /&gt;&lt;br /&gt;이&amp;nbsp;정책은&amp;nbsp;ML&amp;nbsp;단독&amp;nbsp;모델의&amp;nbsp;낮은&amp;nbsp;recall&amp;nbsp;문제를&amp;nbsp;MPCA-CUSUM으로&amp;nbsp;보완했고,&amp;nbsp;raw&amp;nbsp;score&amp;nbsp;방식의&amp;nbsp;과도한&amp;nbsp;오탐&amp;nbsp;문제는&amp;nbsp;ML&amp;nbsp;probability와&amp;nbsp;ratio&amp;nbsp;조건으로&amp;nbsp;줄였다. &lt;br /&gt;&lt;br /&gt;따라서&amp;nbsp;최종&amp;nbsp;구조는&amp;nbsp;다음과&amp;nbsp;같이&amp;nbsp;정리할&amp;nbsp;수&amp;nbsp;있다. &lt;br /&gt;&lt;br /&gt;```text &lt;br /&gt;ML&amp;nbsp;fault_probability &lt;br /&gt;+ &lt;br /&gt;MPCA&amp;nbsp;Q&amp;nbsp;residual&amp;nbsp;score &lt;br /&gt;+ &lt;br /&gt;CUSUM&amp;nbsp;trend&amp;nbsp;accumulation &lt;br /&gt;+ &lt;br /&gt;warning&amp;nbsp;/&amp;nbsp;critical&amp;nbsp;ratio &lt;br /&gt;&amp;darr; &lt;br /&gt;NORMAL&amp;nbsp;/&amp;nbsp;WARNING&amp;nbsp;/&amp;nbsp;CRITICAL&amp;nbsp;최종&amp;nbsp;판정 &lt;br /&gt;``` &lt;br /&gt;&lt;br /&gt;--- &lt;br /&gt;&lt;br /&gt;##&amp;nbsp;8.&amp;nbsp;기존&amp;nbsp;metal_etch_fdc와&amp;nbsp;비교 &lt;br /&gt;&lt;br /&gt;기존&amp;nbsp;`metal_etch_fdc`는&amp;nbsp;EV/OES/RFM&amp;nbsp;원본&amp;nbsp;데이터를&amp;nbsp;bin&amp;nbsp;단위로&amp;nbsp;통합하고,&amp;nbsp;정상&amp;nbsp;기준&amp;nbsp;z-score&amp;nbsp;RMS&amp;nbsp;방식으로&amp;nbsp;anomaly&amp;nbsp;score를&amp;nbsp;계산했다. &lt;br /&gt;&lt;br /&gt;이번&amp;nbsp;`unified_features_fdc`는&amp;nbsp;wide-format&amp;nbsp;time-index&amp;nbsp;구조를&amp;nbsp;복원한&amp;nbsp;뒤&amp;nbsp;MPCA,&amp;nbsp;Q&amp;nbsp;residual,&amp;nbsp;EWMA/CUSUM,&amp;nbsp;최종&amp;nbsp;정책&amp;nbsp;결합까지&amp;nbsp;적용했다. &lt;br /&gt;&lt;br /&gt;비교&amp;nbsp;결과는&amp;nbsp;다음과&amp;nbsp;같다. &lt;br /&gt;&lt;br /&gt;|&amp;nbsp;항목&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;기존&amp;nbsp;metal_etch_fdc&amp;nbsp;|&amp;nbsp;이번&amp;nbsp;unified_features_fdc&amp;nbsp;| &lt;br /&gt;|&amp;nbsp;-----------------------&amp;nbsp;|&amp;nbsp;----------------:&amp;nbsp;|&amp;nbsp;----------------------:&amp;nbsp;| &lt;br /&gt;|&amp;nbsp;Fault&amp;nbsp;warning&amp;nbsp;탐지&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;16/20&amp;nbsp;=&amp;nbsp;80.0%&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;20/20&amp;nbsp;=&amp;nbsp;100%&amp;nbsp;| &lt;br /&gt;|&amp;nbsp;Fault&amp;nbsp;critical&amp;nbsp;탐지&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;15/20&amp;nbsp;=&amp;nbsp;75.0%&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;20/20&amp;nbsp;=&amp;nbsp;100%&amp;nbsp;| &lt;br /&gt;|&amp;nbsp;Calibration&amp;nbsp;false&amp;nbsp;alarm&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;26/104&amp;nbsp;=&amp;nbsp;25.0%&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;9/103&amp;nbsp;=&amp;nbsp;8.7%&amp;nbsp;| &lt;br /&gt;|&amp;nbsp;ML&amp;nbsp;FN&amp;nbsp;보완&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;제한적&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10/10&amp;nbsp;보완&amp;nbsp;| &lt;br /&gt;|&amp;nbsp;이상탐지&amp;nbsp;방식&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;z-score&amp;nbsp;RMS&amp;nbsp;기반&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MPCA&amp;nbsp;Q&amp;nbsp;+&amp;nbsp;CUSUM&amp;nbsp;기반&amp;nbsp;| &lt;br /&gt;|&amp;nbsp;대시보드&amp;nbsp;방향&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;분석&amp;nbsp;결과&amp;nbsp;중심&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;운영형&amp;nbsp;FDC&amp;nbsp;모니터링&amp;nbsp;중심&amp;nbsp;| &lt;br /&gt;&lt;br /&gt;최종&amp;nbsp;FDC&amp;nbsp;성능&amp;nbsp;기준으로는&amp;nbsp;이번&amp;nbsp;unified&amp;nbsp;방식이&amp;nbsp;더&amp;nbsp;우수했다. &lt;br /&gt;탐지율은&amp;nbsp;높아졌고,&amp;nbsp;calibration&amp;nbsp;false&amp;nbsp;alarm은&amp;nbsp;크게&amp;nbsp;줄었다. &lt;br /&gt;&lt;br /&gt;다만&amp;nbsp;기존&amp;nbsp;방식은&amp;nbsp;구조가&amp;nbsp;단순해서&amp;nbsp;설명이&amp;nbsp;쉽다는&amp;nbsp;장점이&amp;nbsp;있었다.&amp;nbsp;반면&amp;nbsp;unified&amp;nbsp;방식은&amp;nbsp;MPCA,&amp;nbsp;Q&amp;nbsp;residual,&amp;nbsp;CUSUM,&amp;nbsp;ratio&amp;nbsp;조건까지&amp;nbsp;들어가므로&amp;nbsp;성능은&amp;nbsp;좋지만&amp;nbsp;해석과&amp;nbsp;설명은&amp;nbsp;더&amp;nbsp;복잡하다. &lt;br /&gt;&lt;br /&gt;--- &lt;br /&gt;&lt;br /&gt;##&amp;nbsp;9.&amp;nbsp;Streamlit&amp;nbsp;대시보드&amp;nbsp;개선&amp;nbsp;방향 &lt;br /&gt;&lt;br /&gt;이번에는&amp;nbsp;최종&amp;nbsp;결과를&amp;nbsp;바탕으로&amp;nbsp;Streamlit&amp;nbsp;대시보드도&amp;nbsp;구성했다.&amp;nbsp;처음에는&amp;nbsp;분석&amp;nbsp;결과를&amp;nbsp;많이&amp;nbsp;담으려다&amp;nbsp;보니&amp;nbsp;화면이&amp;nbsp;복잡해질&amp;nbsp;수&amp;nbsp;있었다.&amp;nbsp;이후&amp;nbsp;reference&amp;nbsp;이미지를&amp;nbsp;참고해&amp;nbsp;밝은&amp;nbsp;테마의&amp;nbsp;업무형&amp;nbsp;대시보드로&amp;nbsp;새로&amp;nbsp;구성하기로&amp;nbsp;했다. &lt;br /&gt;&lt;br /&gt;방향은&amp;nbsp;다음과&amp;nbsp;같다. &lt;br /&gt;&lt;br /&gt;*&amp;nbsp;밝은&amp;nbsp;회색&amp;nbsp;배경 &lt;br /&gt;*&amp;nbsp;흰색&amp;nbsp;카드형&amp;nbsp;KPI &lt;br /&gt;*&amp;nbsp;파란색&amp;nbsp;포인트&amp;nbsp;컬러 &lt;br /&gt;*&amp;nbsp;NORMAL&amp;nbsp;/&amp;nbsp;WARNING&amp;nbsp;/&amp;nbsp;CRITICAL&amp;nbsp;색상&amp;nbsp;구분 &lt;br /&gt;*&amp;nbsp;너무&amp;nbsp;많은&amp;nbsp;차트를&amp;nbsp;한&amp;nbsp;화면에&amp;nbsp;넣지&amp;nbsp;않고&amp;nbsp;페이지별&amp;nbsp;그룹화 &lt;br /&gt;*&amp;nbsp;Overview에서는&amp;nbsp;전체&amp;nbsp;상태와&amp;nbsp;정책&amp;nbsp;성능만&amp;nbsp;표시 &lt;br /&gt;*&amp;nbsp;Wafer&amp;nbsp;Monitoring에서는&amp;nbsp;선택&amp;nbsp;wafer의&amp;nbsp;시계열&amp;nbsp;score&amp;nbsp;중심&amp;nbsp;표시 &lt;br /&gt;*&amp;nbsp;Source&amp;nbsp;&amp;amp;&amp;nbsp;Feature에서는&amp;nbsp;원인&amp;nbsp;확정이&amp;nbsp;아닌&amp;nbsp;이상&amp;nbsp;후보&amp;nbsp;source로&amp;nbsp;표현 &lt;br /&gt;&lt;br /&gt;대시보드는&amp;nbsp;분석용&amp;nbsp;화면이&amp;nbsp;아니라,&amp;nbsp;공정&amp;nbsp;상태를&amp;nbsp;빠르게&amp;nbsp;확인하는&amp;nbsp;FDC&amp;nbsp;모니터링&amp;nbsp;화면처럼&amp;nbsp;구성하는&amp;nbsp;것이&amp;nbsp;더&amp;nbsp;적절하다고&amp;nbsp;판단했다. &lt;br /&gt;&lt;br /&gt;--- &lt;br /&gt;&lt;br /&gt;##&amp;nbsp;오늘&amp;nbsp;배운&amp;nbsp;점 &lt;br /&gt;&lt;br /&gt;오늘&amp;nbsp;가장&amp;nbsp;크게&amp;nbsp;배운&amp;nbsp;점은,&amp;nbsp;같은&amp;nbsp;데이터를&amp;nbsp;사용하더라도&amp;nbsp;**시계열&amp;nbsp;구조를&amp;nbsp;어떻게&amp;nbsp;복원하고&amp;nbsp;이상&amp;nbsp;score를&amp;nbsp;어떻게&amp;nbsp;설계하느냐에&amp;nbsp;따라&amp;nbsp;FDC&amp;nbsp;성능이&amp;nbsp;크게&amp;nbsp;달라진다**는&amp;nbsp;것이다. &lt;br /&gt;&lt;br /&gt;처음에는&amp;nbsp;ML&amp;nbsp;모델&amp;nbsp;성능을&amp;nbsp;높이는&amp;nbsp;것이&amp;nbsp;중요하다고&amp;nbsp;생각했지만,&amp;nbsp;실제로는&amp;nbsp;ML&amp;nbsp;단독&amp;nbsp;모델의&amp;nbsp;recall이&amp;nbsp;0.50에&amp;nbsp;그쳤다.&amp;nbsp;그런데&amp;nbsp;MPCA&amp;nbsp;Q&amp;nbsp;residual&amp;nbsp;score와&amp;nbsp;CUSUM을&amp;nbsp;결합하자&amp;nbsp;ML이&amp;nbsp;놓친&amp;nbsp;fault를&amp;nbsp;모두&amp;nbsp;보완할&amp;nbsp;수&amp;nbsp;있었다. &lt;br /&gt;&lt;br /&gt;즉,&amp;nbsp;공정&amp;nbsp;FDC에서는&amp;nbsp;단순&amp;nbsp;분류&amp;nbsp;모델보다&amp;nbsp;정상&amp;nbsp;패턴을&amp;nbsp;기준으로&amp;nbsp;한&amp;nbsp;이탈도,&amp;nbsp;잔차,&amp;nbsp;누적&amp;nbsp;변화&amp;nbsp;감지가&amp;nbsp;중요할&amp;nbsp;수&amp;nbsp;있다. &lt;br /&gt;&lt;br /&gt;또한&amp;nbsp;fault&amp;nbsp;type이&amp;nbsp;각각&amp;nbsp;1개뿐인&amp;nbsp;데이터에서는&amp;nbsp;일반적인&amp;nbsp;통계&amp;nbsp;검정이나&amp;nbsp;supervised&amp;nbsp;learning만으로는&amp;nbsp;한계가&amp;nbsp;크다.&amp;nbsp;이런&amp;nbsp;경우&amp;nbsp;fault&amp;nbsp;전체를&amp;nbsp;하나로&amp;nbsp;묶기보다,&amp;nbsp;fault&amp;nbsp;type별&amp;nbsp;정상&amp;nbsp;기준&amp;nbsp;이탈도와&amp;nbsp;block-level&amp;nbsp;anomaly&amp;nbsp;score를&amp;nbsp;함께&amp;nbsp;보는&amp;nbsp;방식이&amp;nbsp;더&amp;nbsp;적절했다. &lt;br /&gt;&lt;br /&gt;--- &lt;br /&gt;&lt;br /&gt;##&amp;nbsp;한계 &lt;br /&gt;&lt;br /&gt;이번&amp;nbsp;결과가&amp;nbsp;좋아&amp;nbsp;보이지만&amp;nbsp;그대로&amp;nbsp;일반화하면&amp;nbsp;안&amp;nbsp;된다. &lt;br /&gt;&lt;br /&gt;*&amp;nbsp;fault&amp;nbsp;wafer가&amp;nbsp;20개뿐이다. &lt;br /&gt;*&amp;nbsp;fault&amp;nbsp;type별&amp;nbsp;샘플이&amp;nbsp;1개씩이다. &lt;br /&gt;*&amp;nbsp;calibration&amp;nbsp;false&amp;nbsp;alarm이&amp;nbsp;0은&amp;nbsp;아니다. &lt;br /&gt;*&amp;nbsp;lead_time_ratio는&amp;nbsp;실제&amp;nbsp;초&amp;nbsp;단위&amp;nbsp;시간이&amp;nbsp;아니라&amp;nbsp;normalized&amp;nbsp;progress&amp;nbsp;기준이다. &lt;br /&gt;*&amp;nbsp;source별&amp;nbsp;기여도는&amp;nbsp;실제&amp;nbsp;root&amp;nbsp;cause&amp;nbsp;확정이&amp;nbsp;아니다. &lt;br /&gt;*&amp;nbsp;독립&amp;nbsp;test&amp;nbsp;set&amp;nbsp;검증이&amp;nbsp;없다. &lt;br /&gt;*&amp;nbsp;실제&amp;nbsp;streaming&amp;nbsp;환경에서&amp;nbsp;검증된&amp;nbsp;것은&amp;nbsp;아니다. &lt;br /&gt;&lt;br /&gt;따라서&amp;nbsp;이번&amp;nbsp;결과는&amp;nbsp;production&amp;nbsp;적용&amp;nbsp;성능이&amp;nbsp;아니라,&amp;nbsp;탐색적&amp;nbsp;FDC&amp;nbsp;조기경보&amp;nbsp;시스템&amp;nbsp;구축&amp;nbsp;결과로&amp;nbsp;보는&amp;nbsp;것이&amp;nbsp;맞다. &lt;br /&gt;&lt;br /&gt;--- &lt;br /&gt;&lt;br /&gt;##&amp;nbsp;최종&amp;nbsp;정리&amp;nbsp;문장 &lt;br /&gt;&lt;br /&gt;오늘은&amp;nbsp;`unified_features.csv`를&amp;nbsp;기반으로&amp;nbsp;EV/OES/RFM의&amp;nbsp;time-index&amp;nbsp;구조를&amp;nbsp;복원하고,&amp;nbsp;통계&amp;nbsp;검정,&amp;nbsp;fault&amp;nbsp;type별&amp;nbsp;이탈도&amp;nbsp;분석,&amp;nbsp;머신러닝,&amp;nbsp;MPCA&amp;nbsp;T&amp;sup2;/Q,&amp;nbsp;EWMA/CUSUM,&amp;nbsp;최종&amp;nbsp;경고&amp;nbsp;정책까지&amp;nbsp;다시&amp;nbsp;구성했다.&amp;nbsp;머신러닝&amp;nbsp;단독&amp;nbsp;모델은&amp;nbsp;fault&amp;nbsp;recall이&amp;nbsp;0.50으로&amp;nbsp;부족했지만,&amp;nbsp;MPCA&amp;nbsp;Q&amp;nbsp;residual&amp;nbsp;score와&amp;nbsp;CUSUM을&amp;nbsp;결합한&amp;nbsp;`E_ml_cusum`&amp;nbsp;정책은&amp;nbsp;fault&amp;nbsp;20건을&amp;nbsp;모두&amp;nbsp;탐지하고&amp;nbsp;calibration&amp;nbsp;false&amp;nbsp;alarm을&amp;nbsp;8.7%로&amp;nbsp;낮췄다.&amp;nbsp;기존&amp;nbsp;`metal_etch_fdc`보다&amp;nbsp;최종&amp;nbsp;탐지율과&amp;nbsp;오탐률&amp;nbsp;모두&amp;nbsp;개선되었으며,&amp;nbsp;FDC&amp;nbsp;조기경보&amp;nbsp;시스템에서는&amp;nbsp;ML&amp;nbsp;단독보다&amp;nbsp;정상&amp;nbsp;패턴&amp;nbsp;이탈도와&amp;nbsp;누적&amp;nbsp;이상&amp;nbsp;score를&amp;nbsp;결합하는&amp;nbsp;하이브리드&amp;nbsp;접근이&amp;nbsp;더&amp;nbsp;적합하다는&amp;nbsp;점을&amp;nbsp;확인했다. &lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
      <category>QAQC_5기 부트캠프/실전 프로젝트</category>
      <author>두껍22</author>
      <guid isPermaLink="true">https://eeengineer.tistory.com/11</guid>
      <comments>https://eeengineer.tistory.com/11#entry11comment</comments>
      <pubDate>Fri, 5 Jun 2026 21:42:50 +0900</pubDate>
    </item>
    <item>
      <title>[내일배움캠프] QA/QC_5기 본캠프(0604)</title>
      <link>https://eeengineer.tistory.com/10</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;문제풀이&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1083&quot; data-origin-height=&quot;663&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ccnHQ2/dJMb99T8CZx/KCMHCp9FUhfEX2c9Jfdso0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ccnHQ2/dJMb99T8CZx/KCMHCp9FUhfEX2c9Jfdso0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ccnHQ2/dJMb99T8CZx/KCMHCp9FUhfEX2c9Jfdso0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FccnHQ2%2FdJMb99T8CZx%2FKCMHCp9FUhfEX2c9Jfdso0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1083&quot; height=&quot;663&quot; data-origin-width=&quot;1083&quot; data-origin-height=&quot;663&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;h2 style=&quot;background-color: #ebffeb; color: #0d0e11; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;왜 SHAP가 특별한가&lt;/h2&gt;
&lt;p style=&quot;background-color: #ebffeb; color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;SHAP의 가장 큰 강점은 &lt;b&gt;수학적으로 유일하고 공정한 특성 기여도 측정 방법&lt;/b&gt;을 제공한다는 거예요. 단순히 특성의 중요도만 평가하는 것이 아니라, 각 특성이 예측값에 실제로 얼마나 더하거나 뺐는지를 추적할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ebffeb; color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;이렇게 하면 모델의 예측 과정을 투명하게 설명할 수 있고, 잘못된 예측이 나왔을 때 어느 특성 때문에 그렇게 되었는지 명확히 파악할 수 있어요.&lt;/span&gt;&lt;/p&gt;
&lt;h2 style=&quot;background-color: #ebffeb; color: #0d0e11; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;헷갈리기 쉬운 지점&lt;/h2&gt;
&lt;p style=&quot;background-color: #ebffeb; color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;특성의 &quot;중요도&quot;와 특정 예측에서의 &quot;기여도&quot;는 다른 개념이라는 점을 기억해요. 중요도는 전체 모델 관점이고, 기여도는 개별 예측 관점이에요.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ebffeb; color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;복습 정말 잘했어요! 설명 가능한 AI의 핵심을 이해하셨어요&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1074&quot; data-origin-height=&quot;877&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cBtn7N/dJMcafmyYtd/lGCLBltNnfC8Vaz96fJ6XK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cBtn7N/dJMcafmyYtd/lGCLBltNnfC8Vaz96fJ6XK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cBtn7N/dJMcafmyYtd/lGCLBltNnfC8Vaz96fJ6XK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcBtn7N%2FdJMcafmyYtd%2FlGCLBltNnfC8Vaz96fJ6XK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1074&quot; height=&quot;877&quot; data-origin-width=&quot;1074&quot; data-origin-height=&quot;877&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실전 프로젝트&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;h1&gt;EV+OES 기반 금속 식각 공정 양불 분류 모델링&lt;/h1&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;오늘 진행한 내용&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오늘은 금속 식각 공정 데이터 중 &lt;b&gt;EV 데이터와 OES 데이터만 사용하여 정상 wafer와 불량 wafer를 구분하는 양불 분류 모델&lt;/b&gt;을 정리했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;EV는 장비의 압력, 가스 유량, RF/TCP power, impedance 등 공정 제어 상태를 나타내고, OES는 플라즈마 발광 스펙트럼을 통해 식각 반응 상태를 보여준다. 이번 분석에서는 RFM을 제외하고 EV+OES 조합만으로 불량을 얼마나 잘 탐지할 수 있는지 확인했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터는 최종적으로 126개 wafer를 사용했으며, 정상 106개, 불량 20개로 구성되었다. 불량 비율이 약 15.9%로 낮기 때문에 단순 Accuracy만으로 모델을 평가하면 안 된다고 판단했다. 따라서 모델 성능은 &lt;b&gt;Recall, F1-score, False Negative&lt;/b&gt;를 중심으로 확인했다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;데이터 전처리 및 변수 생성&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;EV와 OES는 모두 시계열 데이터이지만, 모델 입력은 wafer 단위로 구성해야 했다. 그래서 각 wafer별로 시계열을 요약하는 통계 변수를 생성했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;EV 데이터에서는 다음과 같은 변수를 만들었다.&lt;/p&gt;
변수의미
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;mean&lt;/td&gt;
&lt;td&gt;평균 공정 상태&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;std&lt;/td&gt;
&lt;td&gt;공정 중 변동성&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;min / max&lt;/td&gt;
&lt;td&gt;최소&amp;middot;최대 운전 상태&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;range&lt;/td&gt;
&lt;td&gt;변화 폭&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;iqr&lt;/td&gt;
&lt;td&gt;이상값 영향을 줄인 변동성&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;slope&lt;/td&gt;
&lt;td&gt;시간에 따른 변화 방향&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;delta&lt;/td&gt;
&lt;td&gt;시작점 대비 종료점 변화&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;step4 / step5 통계&lt;/td&gt;
&lt;td&gt;Main Etch와 Over Etch 구간별 상태&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;OES 데이터는 별도 시간 컬럼이 없기 때문에 wafer 내부 행 순서를 공정 진행 순서로 보고 분석했다. OES에서도 평균, 표준편차, 최대값, 최소값, 변화량, 기울기, 센서 간 편차 등을 생성했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;추가로 공정 해석을 위해 Al, Ti, Si 관련 파장대를 따로 반영했다.&lt;/p&gt;
구분파장
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Al&lt;/td&gt;
&lt;td&gt;394.4nm, 395.8nm&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ti&lt;/td&gt;
&lt;td&gt;336.98nm&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Si&lt;/td&gt;
&lt;td&gt;250.0nm&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;500nm대&lt;/td&gt;
&lt;td&gt;532.6nm, 544.2nm, 556.7nm, 580.0nm&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;모델링 흐름&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 모델링은 아래 순서로 진행했다.&lt;/p&gt;
단계내용
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;EV+OES wafer 단위 변수 생성&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Global baseline 모델 평가&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;Experiment별 local 모델 평가&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;Local 기준 주요 변수 선정&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;Local 정상 기준 편차 변수 생성&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;Enhanced LightGBM 모델 평가&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;Optuna 튜닝&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;변수 중요도 해석&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;불량 유형 분류 가능성 검토&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Baseline 모델 결과&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 전체 데이터를 하나로 사용해 Global Baseline 모델을 평가했다.&lt;/p&gt;
모델AccuracyPrecisionRecallF1FN
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Logistic Regression&lt;/td&gt;
&lt;td&gt;0.786&lt;/td&gt;
&lt;td&gt;0.348&lt;/td&gt;
&lt;td&gt;0.400&lt;/td&gt;
&lt;td&gt;0.372&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ExtraTrees&lt;/td&gt;
&lt;td&gt;0.873&lt;/td&gt;
&lt;td&gt;1.000&lt;/td&gt;
&lt;td&gt;0.200&lt;/td&gt;
&lt;td&gt;0.333&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LightGBM&lt;/td&gt;
&lt;td&gt;0.849&lt;/td&gt;
&lt;td&gt;0.571&lt;/td&gt;
&lt;td&gt;0.200&lt;/td&gt;
&lt;td&gt;0.296&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RandomForest&lt;/td&gt;
&lt;td&gt;0.857&lt;/td&gt;
&lt;td&gt;1.000&lt;/td&gt;
&lt;td&gt;0.100&lt;/td&gt;
&lt;td&gt;0.182&lt;/td&gt;
&lt;td&gt;18&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dummy&lt;/td&gt;
&lt;td&gt;0.841&lt;/td&gt;
&lt;td&gt;0.000&lt;/td&gt;
&lt;td&gt;0.000&lt;/td&gt;
&lt;td&gt;0.000&lt;/td&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Baseline 결과에서는 Accuracy가 높아 보여도 실제 불량 검출 성능은 부족했다. 특히 RandomForest와 ExtraTrees는 정상은 잘 맞췄지만, 불량을 대부분 정상으로 판단했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가장 높은 Recall은 Logistic Regression의 0.400이었지만, Precision이 낮아 정상 wafer를 불량으로 잘못 판단하는 경우가 많았다. 따라서 기본 통계 변수만으로는 EV+OES 양불 분류 모델이 충분하다고 보기 어려웠다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Local 정상 기준 편차 변수 생성&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;공정 데이터는 experiment 29, 31, 33 그룹으로 나뉘며, 그룹별 공정 drift가 존재한다. 이를 보정하기 위해 각 experiment 내부의 정상 wafer를 기준으로 편차 변수를 만들었다.&lt;/p&gt;
&lt;pre class=&quot;ini&quot;&gt;&lt;code&gt;rz = (현재 wafer 값 - 같은 experiment 정상 평균) / 같은 experiment 정상 표준편차

abs_rz = |rz|
&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, 단순히 변수값 자체를 보는 것이 아니라,&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;같은 실험 그룹의 정상 wafer들과 비교했을 때 얼마나 벗어났는가&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;를 변수로 추가한 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 방식은 공정 drift를 줄이고, 불량 wafer가 정상 기준에서 얼마나 이탈했는지 더 잘 반영하기 위한 방법이다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Enhanced 모델 결과&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Local 정상 기준 편차 변수를 추가한 뒤 Enhanced LightGBM 모델을 평가했다.&lt;/p&gt;
모델AccuracyPrecisionRecallF1FN
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Enhanced LightGBM&lt;/td&gt;
&lt;td&gt;0.929&lt;/td&gt;
&lt;td&gt;0.867&lt;/td&gt;
&lt;td&gt;0.650&lt;/td&gt;
&lt;td&gt;0.743&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Baseline과 비교하면 성능이 확실히 좋아졌다.&lt;/p&gt;
구분Baseline LREnhanced LightGBM
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Recall&lt;/td&gt;
&lt;td&gt;0.400&lt;/td&gt;
&lt;td&gt;0.650&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;F1&lt;/td&gt;
&lt;td&gt;0.372&lt;/td&gt;
&lt;td&gt;0.743&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;FN&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TP&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;불량 20개 중 13개를 검출했고, 놓친 불량은 7개로 줄었다. 이를 통해 단순 통계 변수보다 &lt;b&gt;local 정상 기준 편차 변수&lt;/b&gt;가 불량 탐지에 효과적이라는 점을 확인했다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Local Enhanced 결과&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Experiment별 Enhanced 모델 결과는 다음과 같았다.&lt;/p&gt;
ExperimentAccuracyPrecisionRecallF1FN
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;29&lt;/td&gt;
&lt;td&gt;0.810&lt;/td&gt;
&lt;td&gt;0.500&lt;/td&gt;
&lt;td&gt;0.500&lt;/td&gt;
&lt;td&gt;0.500&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;31&lt;/td&gt;
&lt;td&gt;0.860&lt;/td&gt;
&lt;td&gt;0.500&lt;/td&gt;
&lt;td&gt;0.167&lt;/td&gt;
&lt;td&gt;0.250&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;33&lt;/td&gt;
&lt;td&gt;0.976&lt;/td&gt;
&lt;td&gt;1.000&lt;/td&gt;
&lt;td&gt;0.833&lt;/td&gt;
&lt;td&gt;0.909&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Experiment 33은 불량을 잘 검출했지만, Experiment 31은 Recall이 낮았다. 즉, EV+OES만으로 모든 실험 그룹의 불량을 안정적으로 탐지한다고 말하기는 어렵다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특히 Experiment 31에서는 EV와 OES 신호만으로는 불량 구분이 약했을 가능성이 있다. 이 부분은 이후 EV+RFM 또는 EV+OES+RFM 모델과 비교가 필요하다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Optuna 튜닝 결과&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Enhanced feature를 사용한 global 모델에 Optuna 튜닝을 적용했다.&lt;/p&gt;
모델AccuracyPrecisionRecallF1FN
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Optuna Tuned Global&lt;/td&gt;
&lt;td&gt;0.960&lt;/td&gt;
&lt;td&gt;0.857&lt;/td&gt;
&lt;td&gt;0.900&lt;/td&gt;
&lt;td&gt;0.878&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단계별 성능 변화는 다음과 같다.&lt;/p&gt;
단계RecallF1FNTP
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Baseline LR&lt;/td&gt;
&lt;td&gt;0.400&lt;/td&gt;
&lt;td&gt;0.372&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Enhanced LightGBM&lt;/td&gt;
&lt;td&gt;0.650&lt;/td&gt;
&lt;td&gt;0.743&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Optuna Tuned Global&lt;/td&gt;
&lt;td&gt;0.900&lt;/td&gt;
&lt;td&gt;0.878&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;18&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최종 global 모델은 불량 20개 중 18개를 검출했다. 놓친 불량은 2개로 줄었고, F1-score도 0.878까지 개선되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;성능 개선 흐름은 다음과 같이 정리할 수 있다.&lt;/p&gt;
&lt;pre class=&quot;properties&quot;&gt;&lt;code&gt;기본 통계 변수 생성
&amp;darr;
local 정상 기준 편차 변수 추가
&amp;darr;
LightGBM 적용
&amp;darr;
Optuna 튜닝
&amp;darr;
Recall 0.900 달성
&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;주요 변수 해석&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최종 모델에서 중요하게 나타난 변수는 다음과 같다.&lt;/p&gt;
변수해석
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;DEV__OES__394.4__std__abs_rz&lt;/td&gt;
&lt;td&gt;Al 방출선 부근 변동성이 정상 기준에서 벗어난 정도&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DEV__OES__Al_delta__abs_rz&lt;/td&gt;
&lt;td&gt;Al 관련 OES 변화량의 정상 기준 편차&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DEV__EV__Pressure__range__abs_rz&lt;/td&gt;
&lt;td&gt;챔버 압력 변화 폭의 정상 기준 편차&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DEV__EV__TCP Load__step4_mean__abs_rz&lt;/td&gt;
&lt;td&gt;Main Etch 구간 TCP Load 평균 편차&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DEV__EV__Pressure__step5_minus_step4_mean__abs_rz&lt;/td&gt;
&lt;td&gt;Step4에서 Step5로 넘어갈 때 압력 변화&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OES__660.0__slope&lt;/td&gt;
&lt;td&gt;660nm 부근 발광 intensity 변화&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;EV__TCP Rfl Pwr__step4_slope&lt;/td&gt;
&lt;td&gt;Step4 구간 TCP 반사전력 변화&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;EV__RF Btm Rfl Pwr__step4_slope&lt;/td&gt;
&lt;td&gt;Step4 구간 RF Bottom 반사전력 변화&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;EV__Pressure__slope&lt;/td&gt;
&lt;td&gt;챔버 압력의 시간 변화&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;중요 변수는 크게 세 가지로 묶을 수 있었다.&lt;/p&gt;
그룹관련 변수의미
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;OES Al 신호&lt;/td&gt;
&lt;td&gt;394.4nm, Al_delta&lt;/td&gt;
&lt;td&gt;Al 식각 진행 상태 변화&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pressure&lt;/td&gt;
&lt;td&gt;Pressure range, Pressure slope&lt;/td&gt;
&lt;td&gt;챔버 압력 안정성&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RF/TCP&lt;/td&gt;
&lt;td&gt;TCP Load, reflected power&lt;/td&gt;
&lt;td&gt;전력 전달 및 matching 상태&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;공정 관점에서는 다음 흐름으로 해석할 수 있다.&lt;/p&gt;
&lt;pre class=&quot;properties&quot;&gt;&lt;code&gt;압력 또는 전력 전달 상태 변화
&amp;darr;
플라즈마 상태 변화
&amp;darr;
Al 관련 OES 신호 변화
&amp;darr;
정상 기준 편차 증가
&amp;darr;
불량 가능성 증가
&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단, 변수 중요도는 모델이 분류에 사용한 정보일 뿐이므로 실제 불량 원인이라고 단정하면 안 된다. 현재는 불량과 관련성이 높은 후보 변수로 해석하는 것이 맞다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;불량 유형 분류 검토&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;양불 분류 이후 불량 유형 분류 가능성도 확인했다.&lt;/p&gt;
Fault Family개수
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;TCP&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gas&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pressure&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RF&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;He&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결과는 다음과 같았다.&lt;/p&gt;
지표값
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Accuracy&lt;/td&gt;
&lt;td&gt;0.45&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Macro F1&lt;/td&gt;
&lt;td&gt;0.33&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Weighted F1&lt;/td&gt;
&lt;td&gt;0.42&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;불량 유형 분류는 아직 신뢰하기 어렵다. 전체 불량 데이터가 20개뿐이고, He는 샘플이 1개뿐이라 학습이 거의 불가능하다. 따라서 현재 단계에서는 불량 유형 분류보다 양불 분류 성능을 먼저 안정화하는 것이 맞다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;오늘의 정리&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;EV+OES 기반 양불 분류에서 단순 baseline 모델은 불량 검출력이 부족했다. Accuracy는 높아 보일 수 있지만, 실제로는 불량을 많이 놓치는 문제가 있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 experiment별 정상 기준 편차 변수를 추가한 뒤 성능이 크게 개선되었다. Enhanced LightGBM은 Recall 0.650을 기록했고, Optuna 튜닝을 적용한 최종 global 모델은 Recall 0.900, F1-score 0.878까지 향상되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 분석을 통해 EV+OES만으로도 양불 분류 가능성이 있다는 점을 확인했다. 특히 Al 관련 OES 신호, 챔버 압력 변화, TCP Load, RF/TCP 반사전력 변화가 불량 분류에 중요한 정보를 제공했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다만 experiment별 성능 차이가 존재했고, 불량 유형 분류는 데이터 수 부족으로 아직 안정적이지 않았다. 이후에는 EV+RFM, EV+OES+RFM 모델과 비교하여 어떤 센서 조합이 가장 안정적인지 확인할 필요가 있다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;다음 진행 방향&lt;/h2&gt;
작업목적
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;EV+RFM 모델 비교&lt;/td&gt;
&lt;td&gt;RF matching 정보가 불량 검출을 보완하는지 확인&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;EV+OES+RFM 모델 비교&lt;/td&gt;
&lt;td&gt;다중 센서 통합 성능 확인&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Local별 Optuna 튜닝&lt;/td&gt;
&lt;td&gt;experiment별 성능 차이 완화&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Threshold 최적화&lt;/td&gt;
&lt;td&gt;False Negative 감소&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;주요 변수 관리도 작성&lt;/td&gt;
&lt;td&gt;공정 알람 변수로 활용&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;불량 유형별 데이터 추가&lt;/td&gt;
&lt;td&gt;Fault family 분류 안정화&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;한 줄 요약&lt;/h2&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;EV+OES 양불 분류에서는 기본 통계 변수만 사용한 모델보다 local 정상 기준 편차 변수를 추가한 LightGBM 모델이 더 안정적이었고, Optuna 튜닝 후 global 기준 Recall 0.900, F1-score 0.878까지 개선되었다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오늘자 결론&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터를 팀원들과 나눠서 여러 방식으로 정합하고 분석하는 걸 해봤는데 결국 unfolding 방식으로 정합한 데이터를 사용하기로 했다. 내가 했던 게 전부 사라진 느낌,,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;머신러닝 데이터 정합은 잘 정리한 것 같으니 내일 있을 튜터 피드백을 대비해 노션을 정리하는 시간을 가져야한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이후 본격적인 시계열 모델링과 대시보드 구성에 대해 회의해봐야할 것 같다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
      <category>QAQC_5기 부트캠프/실전 프로젝트</category>
      <author>두껍22</author>
      <guid isPermaLink="true">https://eeengineer.tistory.com/10</guid>
      <comments>https://eeengineer.tistory.com/10#entry10comment</comments>
      <pubDate>Thu, 4 Jun 2026 21:10:54 +0900</pubDate>
    </item>
    <item>
      <title>[내일배움캠프] QA/QC_5기 본캠프(0602)</title>
      <link>https://eeengineer.tistory.com/9</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;문제풀이&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p style=&quot;color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;**Recall은 &quot;실제로 Positive인 것 중에서 모델이 제대로 맞힌 비율&quot;**입니다. 따라서:&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #2e2f36; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;&lt;b&gt;분자&lt;/b&gt;: TP (실제 Positive이면서 맞게 예측한 것)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;&lt;b&gt;분모&lt;/b&gt;: TP + FN (실제 Positive인 모든 것)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;**Precision은 &quot;모델이 Positive라고 예측한 것 중에서 실제로 맞은 비율&quot;**입니다. 따라서:&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #2e2f36; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;&lt;b&gt;분자&lt;/b&gt;: TP (같음)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;&lt;b&gt;분모&lt;/b&gt;: TP + FP (모델이 Positive라고 예측한 모든 것)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;color: #0d0e11; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;✅ 올바른 이해: &quot;분자는 같지만, 분모의 기준이 다르다&quot;&lt;/h3&gt;
&lt;p style=&quot;color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;두 지표 모두 분자는 **TP(진짜 양성)**로 동일해요. 하지만 분모가 달라요:&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #2e2f36; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;&lt;b&gt;Precision&lt;/b&gt;의 분모 = 모델의 관점 (모델이 Positive라고 말한 것 전체)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;&lt;b&gt;Recall&lt;/b&gt;의 분모 = 현실의 관점 (실제로 Positive인 것 전체)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1009&quot; data-origin-height=&quot;714&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bI5yTW/dJMcacQPrH2/At3pyOpRuhYHeKB07ckk9k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bI5yTW/dJMcacQPrH2/At3pyOpRuhYHeKB07ckk9k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bI5yTW/dJMcacQPrH2/At3pyOpRuhYHeKB07ckk9k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbI5yTW%2FdJMcacQPrH2%2FAt3pyOpRuhYHeKB07ckk9k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1009&quot; height=&quot;714&quot; data-origin-width=&quot;1009&quot; data-origin-height=&quot;714&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h1 style=&quot;color: #0d0e11; text-align: start;&quot;&gt;인터랙티브 요소와 사용자 경험 분석&lt;/h1&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p style=&quot;color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;&lt;b&gt;인터랙티브 요소&lt;/b&gt;는 사용자가 대시보드나 시각화와 직접 상호작용할 수 있도록 만든 기능들이에요. 예를 들어 파라미터, 필터, 드롭다운 메뉴처럼 사용자가 값을 바꾸거나 선택할 수 있는 것들입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;&lt;b&gt;사용자 경험 분석&lt;/b&gt;은 이런 인터랙티브 요소들이 실제로 사용자에게 어떤 영향을 미치는지 살펴보는 거예요. 즉, 사용자가 편하게 느끼는지, 쉽게 이해하고 사용할 수 있는지, 혼란스럽지는 않은지를 평가하는 것입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;이 둘을 합쳐서 생각하면: &lt;b&gt;인터랙티브 요소가 얼마나 잘 설계되어 있어서 사용자가 편하고 효과적으로 사용할 수 있는가&lt;/b&gt;를 분석하는 것이 핵심이에요.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;많은 학생들이 &quot;인터랙티브 요소가 있으면 = 좋은 사용자 경험&quot;이라고 단순하게 생각해요. 하지만 이건 잘못된 이해입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;&lt;b&gt;중요한 점은 이거예요:&lt;/b&gt; 파라미터나 필터 같은 인터랙티브 요소가 존재한다고 해서 자동으로 좋은 사용자 경험을 만드는 건 아니라는 거죠. 오히려 &lt;b&gt;인터랙티브 요소가 많을수록, 또는 설명이 부족할수록 사용자가 혼란스러워할 수 있어요.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;예를 들어, 파라미터가 10개나 있는데 각각이 뭘 하는지 설명이 없다면? 사용자는 &quot;이게 뭐지?&quot;, &quot;이걸 어떻게 써야 하지?&quot;라며 헷갈리다가 결국 사용을 포기할 가능성이 높아요. 이건 나쁜 사용자 경험입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;따라서 사용자 경험을 분석할 때는 **&quot;인터랙티브 요소가 얼마나 명확하고 직관적으로 설계되었는가&quot;, &quot;사용자가 혼란 없이 쉽게 사용할 수 있는가&quot;**를 봐야 해요. 인터랙티브 요소 자체의 기능(파라미터로 값을 바꿀 수 있다, 필터링된다)이 작동하는지가 아니라, &lt;b&gt;사용자 입장에서 그것이 얼마나 이해하기 쉽고 유용한지&lt;/b&gt;를 평가하는 거랍니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1013&quot; data-origin-height=&quot;643&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bTXUxW/dJMcaciYcos/knif8G9XwSbozrZVl1Sl0K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bTXUxW/dJMcaciYcos/knif8G9XwSbozrZVl1Sl0K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bTXUxW/dJMcaciYcos/knif8G9XwSbozrZVl1Sl0K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbTXUxW%2FdJMcaciYcos%2Fknif8G9XwSbozrZVl1Sl0K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1013&quot; height=&quot;643&quot; data-origin-width=&quot;1013&quot; data-origin-height=&quot;643&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h1 style=&quot;color: #0d0e11; text-align: start;&quot;&gt;데이터 집계와 KPI 영향도 분석 &amp;mdash; 개념 정리&lt;/h1&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p style=&quot;color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;&lt;b&gt;데이터 집계&lt;/b&gt;는 흩어져 있는 원본 데이터를 &lt;b&gt;의미 있는 단위로 묶어서 정리하는 과정&lt;/b&gt;이에요. 예를 들어 매일매일의 판매 기록을 월별&amp;middot;지역별&amp;middot;상품별로 모아서 합계를 내거나 평균을 구하는 것처럼요.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;&lt;b&gt;KPI 영향도 분석&lt;/b&gt;은 그렇게 집계된 데이터에서 &lt;b&gt;특정 지표(KPI: Key Performance Indicator)가 최종 목표에 얼마나 영향을 미치는지 파악하는 일&lt;/b&gt;입니다. 어떤 요소가 핵심이고, 어떤 부분을 개선하면 가장 효과가 클지를 알아내는 거예요.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt; &lt;/span&gt;&lt;b&gt;&quot;데이터 집계&quot;와 &quot;시각화&quot;를 같은 개념이라고 착각&lt;/b&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;해요. 하지만 이 둘은 다릅니다. 집계는 &lt;/span&gt;&lt;b&gt;데이터를 정리&amp;middot;계산하는 논리적 작업&lt;/b&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;이고, 시각화는 그 결과를 &lt;/span&gt;&lt;b&gt;그래프나 표로 보기 좋게 표현하는 것&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt; &lt;/span&gt;&lt;b&gt;&quot;KPI를 보여주는 것&quot;과 &quot;KPI의 영향도를 분석하는 것&quot;을 구분 못 하는 거예요&lt;/b&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;. 단순히 &quot;판매액은 100만 원입니다&quot;라고 보여주는 것은 KPI를 표현한 것이지만, &quot;이 100만 원 중에서 어느 지역의 기여도가 가장 크고, 상품 A를 30% 더 팔면 목표 달성이 가능하다&quot;고 분석하는 것이 진짜 &lt;/span&gt;&lt;b&gt;영향도 분석&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;KPI 영향도 분석은 단순 수치 보기를 넘어서 &lt;/span&gt;&lt;b&gt;&quot;이 지표가 변하면 전체 성과가 어떻게 달라질까?&quot;라는 인과관계를 찾는 과정&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;970&quot; data-origin-height=&quot;749&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4lNtX/dJMcadoCmee/ry6hFqytKjyJdatUGZC9Z0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4lNtX/dJMcadoCmee/ry6hFqytKjyJdatUGZC9Z0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4lNtX/dJMcadoCmee/ry6hFqytKjyJdatUGZC9Z0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4lNtX%2FdJMcadoCmee%2Fry6hFqytKjyJdatUGZC9Z0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;970&quot; height=&quot;749&quot; data-origin-width=&quot;970&quot; data-origin-height=&quot;749&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h1 style=&quot;color: #0d0e11; text-align: start;&quot;&gt;데이터 전처리와 시각화의 관계 이해&lt;/h1&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;데이터 전처리&lt;/b&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;는 원본 데이터를 정제하고 정렬하는 과정이고, &lt;/span&gt;&lt;b&gt;시각화&lt;/b&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;는 그 데이터를 차트나 대시보드 같은 시각적 형태로 표현하는 과정&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt; &lt;/span&gt;&lt;b&gt;전처리 &amp;rarr; 시각화&lt;/b&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;라는 일방향이 아니라, &lt;/span&gt;&lt;b&gt;시각화 도구 내에서 전처리와 시각화가 함께 일어난다&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&quot;데이터를 준비하는 단계&quot;와 &quot;그것을 의미 있게 표현하는 단계&quot;는 서로 영향을 주고받는 상호작용 관계&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;985&quot; data-origin-height=&quot;1156&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vp1Cq/dJMcajoOM2G/pAouO832g9hO5vmaMjxhl1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vp1Cq/dJMcajoOM2G/pAouO832g9hO5vmaMjxhl1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vp1Cq/dJMcajoOM2G/pAouO832g9hO5vmaMjxhl1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fvp1Cq%2FdJMcajoOM2G%2FpAouO832g9hO5vmaMjxhl1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;985&quot; height=&quot;1156&quot; data-origin-width=&quot;985&quot; data-origin-height=&quot;1156&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오늘의 실전 프로젝트 내용은,,&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;세개의 데이터 묶어서 진행해봤는데 성능이 안나온다..&lt;/p&gt;
&lt;h1&gt;TIL: EV+OES 기반 금속 식각 공정 양불 분류 모델링&lt;/h1&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;오늘 진행한 내용&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오늘은 금속 식각 공정 데이터 중 EV 데이터와 OES 데이터를 중심으로 양불 분류 모델을 구축하는 작업을 진행했다. 기존에는 EV, OES, RFM을 모두 통합하는 방향도 검토했지만, 이번 분석에서는 우선 EV와 OES만 사용해 정상 공정과 불량 공정을 구분하는 모델을 만드는 것을 목표로 잡았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;분석 방향은 참고 논문의 local/global 모델링 개념을 반영했다. 금속 식각 데이터는 실험 그룹에 따라 공정 드리프트가 존재할 수 있기 때문에 전체 데이터를 한 번에 학습하는 global 모델뿐 아니라, experiment 단위로 나누어 local 모델의 성능도 확인하는 구조로 설계했다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;데이터 처리 방향&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;EV 데이터는 장비 센서 및 공정 변수 정보를 담고 있고, OES 데이터는 플라즈마 방출 스펙트럼 정보를 담고 있다. OES 데이터에는 명확한 시간 컬럼이 없기 때문에 웨이퍼 내부의 행 순서를 시간 흐름으로 보고 상대 시간축을 생성했다. 이후 wafer 단위로 EV와 OES feature를 요약하여 머신러닝 입력 데이터로 사용할 수 있도록 구성했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;OES의 경우 전체 파장 정보를 그대로 사용하는 것보다 공정 해석에 의미 있는 파장대를 함께 고려하는 방식으로 접근했다. Al, Ti, Si 관련 파장대와 500nm대 주요 피크 구간을 반영해 평균, 표준편차, 최대값, 최소값, 변화량 등의 통계 feature를 생성했다. EV 데이터 역시 평균, 표준편차, 최대값, 최소값, 기울기 등의 wafer-level feature로 변환했다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;모델링 진행&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 베이스라인 모델을 만들어 EV+OES 조합의 기본 성능을 확인했다. 모델은 Logistic Regression, Random Forest, ExtraTrees, LightGBM 계열을 기준으로 구성했다. 데이터 수가 많지 않고 wafer 단위 샘플이 제한적이기 때문에 일반적인 train-test split만으로 성능을 판단하기 어렵다고 보고, LOOCV 방식을 사용했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;LOOCV는 하나의 wafer를 test로 두고 나머지를 train으로 반복 평가하는 방식이기 때문에, 샘플 수가 적은 현재 데이터셋에서 비교적 엄격하게 모델 성능을 확인할 수 있다. 특히 이번 프로젝트의 목적은 단순히 Accuracy를 높이는 것이 아니라 Fault를 정상으로 놓치는 False Negative를 줄이는 것이기 때문에 Precision보다 Recall과 F1-score를 더 중요하게 봐야 한다고 판단했다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;오류 해결 과정&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모델 고도화 과정에서 ColumnDropper와 관련된 sklearn.clone() 오류가 발생했다. 원인은 ColumnDropper 클래스의 생성자에서 drop_cols 파라미터를 내부적으로 변형했기 때문이다. sklearn.clone()은 estimator의 생성자 파라미터가 그대로 유지되어야 하는데, 기존 구현에서는 None을 빈 리스트로 바꾸는 방식 때문에 clone이 실패했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음에는 ColumnDropper 클래스를 수정하는 방향으로 접근했지만, 실제로 현재 pipeline에서 컬럼 제거 기능이 반드시 필요하지 않았기 때문에 더 안정적인 방법으로 ColumnDropper를 제거했다. 이후 make_enhanced_model() 함수를 다시 작성하여 SimpleImputer, StandardScaler, 모델만 포함하는 구조로 단순화했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한 enhanced_model이 정의되지 않아 발생한 NameError도 해결했다. 이전 디버깅 과정에서 enhanced_model을 삭제한 뒤 다시 생성하는 셀이 실행되지 않아 발생한 문제였다. 이를 해결하기 위해 local LOOCV 실행 전에 enhanced_model = make_enhanced_model(...)을 다시 정의하도록 수정했다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;오늘 얻은 판단&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재 분석에서 가장 중요한 점은 모델의 Accuracy만 보고 성능이 좋다고 판단하면 안 된다는 것이다. 데이터는 정상 비율이 높기 때문에, 모델이 대부분을 정상으로 예측해도 Accuracy는 높게 나올 수 있다. 하지만 실제 공정 이상탐지에서는 Fault를 놓치는 것이 더 큰 문제이므로 Recall과 False Negative를 중심으로 평가해야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한 EV+OES만으로 양불 분류를 진행할 경우, OES의 파장별 정보와 EV의 장비 상태 정보가 모두 필요하지만, 단순 통계 feature만으로는 Fault 구분력이 충분하지 않을 수 있다. 따라서 local 기준 주요 변수를 선정하고, 정상 기준 편차, 구간별 변화량, endpoint 부근 변화량, 파장 band ratio 같은 파생변수를 추가하는 방향이 필요하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Optuna 튜닝도 단순 Accuracy나 일반 F1-score만 기준으로 진행하면 Fault Recall이 낮아질 수 있다. 앞으로는 recall, F2-score, 또는 Recall과 PR-AUC를 결합한 목적 함수를 사용하는 방향이 더 적절하다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;다음 진행 방향&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 단계에서는 EV+OES 전용 데이터셋을 기준으로 모델 성능을 다시 정리해야 한다. 특히 global 모델과 experiment별 local 모델을 분리해서 비교하고, local 기준으로 중요한 변수를 뽑아야 한다. 이후 주요 변수들을 기반으로 파생변수를 생성하고, 해당 파생변수가 실제로 Recall과 False Negative 개선에 기여하는지 확인해야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한 threshold를 0.5로 고정하지 않고, Fault Recall을 높일 수 있는 threshold를 별도로 탐색해야 한다. 모델이 예측 확률은 어느 정도 구분하지만 threshold 문제로 Fault를 정상으로 보내는 경우가 있을 수 있기 때문이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;양불 분류 성능이 안정화된 이후에는 불량 유형 분류로 확장할 수 있다. 현재는 양불 분류가 먼저 안정적으로 되어야 하므로, fault type classification은 다음 단계로 미루는 것이 맞다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;정리&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오늘은 EV+OES 기반 금속 식각 공정 양불 분류 모델을 만들기 위한 노트북 구조를 정리하고, LOOCV 평가 구조와 local/global 모델링 방향을 적용했다. 동시에 ColumnDropper clone 오류, enhanced_model NameError, X_cols_for_enhanced 관련 문제를 수정하면서 모델링 pipeline을 더 안정적인 구조로 바꿨다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 작업을 통해 단순히 모델을 돌리는 것보다, 데이터셋의 불균형 구조와 공정 드리프트를 고려한 평가 방식이 중요하다는 점을 확인했다. 특히 금속 식각 공정 이상탐지에서는 Accuracy보다 Fault Recall과 False Negative 감소가 더 중요한 평가 기준이라는 점을 다시 정리할 수 있었다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
      <category>QAQC_5기 부트캠프/실전 프로젝트</category>
      <author>두껍22</author>
      <guid isPermaLink="true">https://eeengineer.tistory.com/9</guid>
      <comments>https://eeengineer.tistory.com/9#entry9comment</comments>
      <pubDate>Tue, 2 Jun 2026 20:39:49 +0900</pubDate>
    </item>
    <item>
      <title>[내일배움캠프] QA/QC_5기 본캠프(0601)</title>
      <link>https://eeengineer.tistory.com/8</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;에이타니 문제풀이&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시계열 개념, 머신러닝 문제&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;div style=&quot;color: #000000; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #2e2f36;&quot;&gt;
&lt;h1 style=&quot;color: #0d0e11; text-align: start;&quot;&gt;시계열 데이터 구성 요소 구분&lt;/h1&gt;
&lt;h2 style=&quot;color: #0d0e11; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;이 개념이 무엇인지&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;시계열 데이터는 시간 순서대로 쌓인 데이터예요. 예를 들어 매일의 주식 가격, 매월 판매량, 시간대별 기온 같은 것들이죠. 이런 데이터를 분석할 때 중요한 건 &lt;b&gt;&quot;시간에 따라 어떤 패턴이 있는가&quot;&lt;/b&gt; 를 찾는 거예요.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;시계열 데이터 구성 요소 구분은 이 시간의 흐름 속에서 &lt;b&gt;여러 가지 움직임을 각각 구분해서 이해하는 것&lt;/b&gt;이에요. 마치 음악에서 악기별 음성을 분리하듯이, 시계열 데이터에 숨어 있는 각각의 신호를 따로따로 봐야 한다는 뜻입니다.&lt;/span&gt;&lt;/p&gt;
&lt;h2 style=&quot;color: #0d0e11; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;시계열 데이터의 주요 구성 요소&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;시계열 데이터는 보통 네 가지 요소로 이루어져 있어요:&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;&lt;b&gt;추세(Trend)&lt;/b&gt;: 장기적으로 위쪽 또는 아래쪽으로 향하는 움직임. 예를 들어 매년 매출이 계속 올라가는 추세&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;&lt;b&gt;계절성(Seasonality)&lt;/b&gt;: 일정한 주기를 반복하는 패턴. 여름이 되면 항상 아이스크림 판매가 많아진다거나, 연말이 되면 선물 구매가 늘어나는 식의 반복&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;&lt;b&gt;순환성(Cyclicity)&lt;/b&gt;: 계절성보다 더 긴 주기로 나타나는 변동. 경제 사이클처럼 수년 단위로 반복되는 패턴&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;&lt;b&gt;불규칙성(Irregularity/Noise)&lt;/b&gt;: 예측 불가능한 무작위 변동. 갑작스러운 사건이나 오류로 인한 갑자기의 변화&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 style=&quot;color: #0d0e11; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;흔히 헷갈리는 지점&lt;/h2&gt;
&lt;h3 style=&quot;color: #0d0e11; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&quot;이 요소들을 구분한다는 게 뭔가요?&quot;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;많은 학생들이 &quot;구분한다&quot;는 말을 들으면 &lt;b&gt;&quot;데이터에서 각 요소를 물리적으로 분리해내서 따로 보존해야 한다&quot;&lt;/b&gt; 고 생각해요. 하지만 그게 아니에요.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;구분한다는 건 &lt;b&gt;&quot;이 데이터 안에 추세가 있네, 계절성도 있네, 불규칙한 부분도 있네 &amp;mdash; 이렇게 인식하고 이해하는 것&quot;&lt;/b&gt; 이에요. 원래 데이터는 이 모든 요소가 섞여 있고, 우리는 그걸 눈으로 차트를 보거나 수학적인 방법(예: 분해 기법)으로 분석해서 각 요소의 영향력을 파악하는 거랍니다.&lt;/span&gt;&lt;/p&gt;
&lt;h3 style=&quot;color: #0d0e11; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&quot;계절성과 순환성은 뭐가 다르죠?&quot;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;또 다른 헷갈림은 &lt;b&gt;계절성과 순환성의 차이&lt;/b&gt;예요. 두 개 다 &lt;b&gt;반복되는 패턴&lt;/b&gt;이라서 헷갈리기 쉬워요.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;&lt;b&gt;계절성&lt;/b&gt;은&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;정해진 주기&lt;/b&gt;가 있어요. 1년 주기, 7일 주기처럼 일정해요. 무조건 반복돼요.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;&lt;b&gt;순환성&lt;/b&gt;은 주기가&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;정해지지 않거나 매우 길어요.&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;경제 호황&amp;rarr;침체&amp;rarr;호황으로 도는 게 언제 일어날지는 예측이 어렵고, 주기도 항상 같지 않아요.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;쉽게 말해서, 계절성은 &quot;매년 여름이면 에어컨 판매가 는다&quot; 같은 기계적 반복이고, 순환성은 &quot;경제가 좋을 때도 있고 안 좋을 때도 있는데 정확히 언제인지는 모르는&quot; 그런 큰 흐름의 변화예요.&lt;/span&gt;&lt;/p&gt;
&lt;h3 style=&quot;color: #0d0e11; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&quot;불규칙성은 정말로 무시해도 되나요?&quot;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;마지막으로, 불규칙성을 보면 학생들이 &quot;이건 중요하지 않은 거 아닌가요?&quot; 라고 묻곤 해요. 하지만 아니에요. &lt;b&gt;불규칙성을 제대로 인식하는 것도 매우 중요&lt;/b&gt;합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;왜냐하면 시계열 모델을 만들 때 불규칙성이 크면 모델의 예측 정확도가 떨어지기 때문이에요. 따라서 불규칙성을 이해하고, 그걸 줄이는 전처리 방법(예: 평활화)을 써야 합니다. 결국 네 가지 요소 &lt;b&gt;모두&lt;/b&gt;를 인식하는 게 좋은 분석과 좋은 모델로 향하는 첫 걸음이에요.&lt;/span&gt;&lt;/p&gt;
&lt;h2 style=&quot;color: #0d0e11; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;정리하며&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;시계열 데이터 구성 요소 구분은 &lt;b&gt;&quot;이 데이터 안에 어떤 신호가 섞여 있는지 인식하기&quot;&lt;/b&gt; 예요. 추세, 계절성, 순환성, 불규칙성이 &lt;b&gt;항상 함께 섞여 있다는 것&lt;/b&gt;을 받아들이고, 각각이 어떤 특성을 가진 움직임인지를 이해하면 돼요. 이렇게 구성 요소를 제대로 파악하면, 나중에 시계열 데이터를 다룰 때 더 정확하고 의미 있는 분석을 할 수 있을 거예요!&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1071&quot; data-origin-height=&quot;401&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BzoCs/dJMcajvERaE/c1sno25G0Jy8wrlRafNoy1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BzoCs/dJMcajvERaE/c1sno25G0Jy8wrlRafNoy1/img.png&quot; data-alt=&quot;왜 머신러닝 문제가,,&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BzoCs/dJMcajvERaE/c1sno25G0Jy8wrlRafNoy1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBzoCs%2FdJMcajvERaE%2Fc1sno25G0Jy8wrlRafNoy1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1071&quot; height=&quot;401&quot; data-origin-width=&quot;1071&quot; data-origin-height=&quot;401&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;왜 머신러닝 문제가,,&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;회귀 평가 지표&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;h1 style=&quot;color: #0d0e11; text-align: start;&quot;&gt;회귀 평가 지표의 이해와 활용&lt;/h1&gt;
&lt;h2 style=&quot;color: #0d0e11; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;이 개념이 무엇인가요?&lt;/h2&gt;
&lt;p style=&quot;color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;&lt;b&gt;회귀 평가 지표&lt;/b&gt;는 우리가 만든 회귀 모델이 실제 값을 얼마나 잘 예측했는지 측정하는 도구예요. 모델이 학습을 잘 했는지, 아니면 개선이 필요한지 판단하기 위해 꼭 필요한 것이죠.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;가장 자주 사용하는 지표들이 있어요. **MSE(평균제곱오차)**는 실제 값과 예측 값의 차이를 제곱해서 평균을 낸 것이고, **MAE(평균절대오차)**는 차이의 절댓값을 평균 낸 것, **R&amp;sup2;(결정계수)**는 모델이 데이터의 분산을 얼마나 설명하는지 보여주는 지표예요.&lt;/span&gt;&lt;/p&gt;
&lt;h2 style=&quot;color: #0d0e11; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;흔히 헷갈리는 부분을 정확히 알아봐요&lt;/h2&gt;
&lt;p style=&quot;color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;&lt;b&gt;첫 번째 오해: &quot;각 오차를 그냥 더하면 되지 않을까?&quot;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;MSE를 구할 때 많은 학생이 오류의 합을 바로 평균으로 나누려고 해요. 하지만 MSE는 &lt;b&gt;차이를 제곱한 후&lt;/b&gt; 평균을 내야 한다는 점이 중요해요. 왜 제곱을 할까요? 음수와 양수 오차가 서로 상쇄되는 걸 막고, 큰 오차를 더 심각하게 반영하기 위해서예요.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;예를 들어, 실제 값이 [10, 20, 30, 40]이고 예측 값이 [12, 18, 32, 38]이라면:&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #2e2f36; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;각 차이: [2, -2, 2, -2]&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;제곱 후: [4, 4, 4, 4]&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;MSE = (4 + 4 + 4 + 4) &amp;divide; 4 =&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;4.0&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;만약 제곱을 빠뜨리고 차이의 합만 평균 내면 (2 - 2 + 2 - 2) &amp;divide; 4 = 0이 되어서 모델이 완벽하다고 착각할 수도 있어요.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;&lt;b&gt;두 번째 오해: &quot;지표마다 의미가 다르다는 걸 놓치기&quot;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;MSE, MAE, R&amp;sup2;는 모두 다른 각도로 성능을 평가해요. &lt;b&gt;MSE와 MAE는 낮을수록 좋지만&lt;/b&gt;, &lt;b&gt;R&amp;sup2;는 높을수록 좋아요&lt;/b&gt;. 또한 MSE는 큰 오차에 더 민감하고, MAE는 모든 오차를 동등하게 봐요. 상황에 맞춰 어떤 지표를 쓸지 선택하는 게 중요해요.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;&lt;b&gt;세 번째 오해: &quot;계산 과정에서 데이터 개수를 빼먹기&quot;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;평가 지표는 항상 &lt;b&gt;전체 샘플 개수&lt;/b&gt;로 나눠서 평균을 구해요. 이것을 빼먹으면 절대값만 남게 되어서 데이터 크기에 따라 지표가 왜곡돼요. 평가 지표의 본질은 &quot;평균적으로&quot; 얼마나 잘못 예측했는가를 보는 것이거든요.&lt;/span&gt;&lt;/p&gt;
&lt;h2 style=&quot;color: #0d0e11; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;정리하면&lt;/h2&gt;
&lt;p style=&quot;color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;회귀 평가 지표는 실제 값과 예측 값의 관계를 &lt;b&gt;정확히 계산&lt;/b&gt;하는 것이 핵심이에요. 공식 하나하나의 의미를 이해하고, 지표 간의 차이를 명확히 아는 게 이 개념을 완전히 마스터하는 길이에요.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1089&quot; data-origin-height=&quot;1121&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cdHivP/dJMb99NiWGD/j0Y3jHK5IdAjdoWizvaBg1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cdHivP/dJMb99NiWGD/j0Y3jHK5IdAjdoWizvaBg1/img.png&quot; data-alt=&quot;에이타니가 많이 아파요&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cdHivP/dJMb99NiWGD/j0Y3jHK5IdAjdoWizvaBg1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcdHivP%2FdJMb99NiWGD%2Fj0Y3jHK5IdAjdoWizvaBg1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1089&quot; height=&quot;1121&quot; data-origin-width=&quot;1089&quot; data-origin-height=&quot;1121&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;에이타니가 많이 아파요&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;F-통계랑과 P값&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;h1 style=&quot;color: #0d0e11; text-align: start;&quot;&gt;F-통계량과 p-값의 이해&lt;/h1&gt;
&lt;h2 style=&quot;color: #0d0e11; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;1) 이것이 무엇인지 &amp;mdash; 핵심 정의&lt;/h2&gt;
&lt;p style=&quot;color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;&lt;b&gt;F-통계량&lt;/b&gt;은 여러 집단의 평균이 정말 다른지를 판단하기 위해 만든 수치예요. 쉽게 말해서, 집단 &lt;b&gt;사이의 차이&lt;/b&gt;가 집단 &lt;b&gt;내부의 차이&lt;/b&gt;보다 얼마나 더 큰지를 비교하는 거랍니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;예를 들어 A, B, C 세 반의 수학 성적을 비교한다고 생각해보세요. 각 반 안에서 학생들 성적이 조금씩 다르겠죠? (반 내부의 차이) 동시에 반들 사이에도 평균 성적 차이가 있을 거고요. (반 사이의 차이) F-통계량은 이 두 가지 차이의 &lt;b&gt;비율&lt;/b&gt;을 계산해요.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;&lt;b&gt;p-값&lt;/b&gt;은 F-통계량을 구한 후, &quot;만약 집단 간에 실제로 차이가 없다면, 지금 우리가 얻은 이 정도의 F-통계량이 나올 확률이 얼마나 될까?&quot;라는 질문에 대한 답이에요. 0~1 사이의 확률 값으로 표현됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;h2 style=&quot;color: #0d0e11; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;2) 자주 헷갈리는 부분 &amp;mdash; 올바른 이해&lt;/h2&gt;
&lt;h3 style=&quot;color: #0d0e11; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;혼동 포인트: &quot;F-통계량은 두 집단을 비교할 때만 쓴다?&quot;&lt;/h3&gt;
&lt;p style=&quot;color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;많은 학생들이 &lt;b&gt;&quot;F-통계량도 t-검정처럼 두 집단의 평균 차이를 보는 거 아닌가?&quot;&lt;/b&gt; 라고 생각해요. 하지만 이건 중요한 차이가 있어요.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;&lt;b&gt;t-검정&lt;/b&gt;은 정확히 &lt;b&gt;두 집단&lt;/b&gt;만 비교할 때 사용해요. 예: A반 vs B반&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;&lt;b&gt;F-통계량&lt;/b&gt;은 &lt;b&gt;세 개 이상의 집단&lt;/b&gt;을 한 번에 비교할 때 사용해요. 예: A반 vs B반 vs C반 vs D반&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;만약 집단이 3개 이상인데 t-검정을 여러 번 반복하면, 오류가 자꾸만 누적돼요. 그래서 한 번에 여러 집단을 공정하게 비교하기 위해 F-통계량(분산분석, ANOVA)이 필요한 거랍니다.&lt;/span&gt;&lt;/p&gt;
&lt;h3 style=&quot;color: #0d0e11; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;혼동 포인트: &quot;p-값이 작으면 뭔가 '나쁜' 결과인가?&quot;&lt;/h3&gt;
&lt;p style=&quot;color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;p-값이 작다는 것은 &quot;집단 간에 차이가 없다는 가정 아래에서 현재 데이터가 나올 확률이 매우 낮다&quot;는 뜻이에요. 다시 말해, &lt;b&gt;실제로는 집단 간에 의미 있는 차이가 있다&lt;/b&gt;는 증거가 강하다는 뜻이에요. 이건 좋은 결과예요!&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;반대로 p-값이 크면, &quot;만약 집단 간에 차이가 정말 없다면 지금의 결과가 충분히 나올 수 있다&quot;는 뜻이라 &lt;b&gt;집단 간 차이가 없을 가능성&lt;/b&gt;이 커요.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;보통 &lt;b&gt;p-값 &amp;lt; 0.05&lt;/b&gt;를 기준으로 &quot;통계적으로 유의하다&quot; (=집단 간 차이가 있다고 판단한다)고 말해요.&lt;/span&gt;&lt;/p&gt;
&lt;h3 style=&quot;color: #0d0e11; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;핵심 정리&lt;/h3&gt;
&lt;p style=&quot;color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #2e2f36; text-align: start;&quot;&gt;F-통계량과 p-값은 &lt;b&gt;한 세트&lt;/b&gt;예요. F-통계량이 &quot;집단 간 차이가 얼마나 큰가&quot;를 수치화한 거라면, p-값은 &quot;그 차이가 정말 의미가 있는 차이인가&quot;를 확률로 판단하는 거랍니다. 둘 다 &lt;b&gt;여러 집단의 평균 비교&lt;/b&gt;에 함께 사용되는 개념이라는 걸 기억하세요!&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #2e2f36; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1082&quot; data-origin-height=&quot;650&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/evkM62/dJMcadPGKd8/vPUAcuTkAoN6iQMFNgzTLK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/evkM62/dJMcadPGKd8/vPUAcuTkAoN6iQMFNgzTLK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/evkM62/dJMcadPGKd8/vPUAcuTkAoN6iQMFNgzTLK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FevkM62%2FdJMcadPGKd8%2FvPUAcuTkAoN6iQMFNgzTLK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1082&quot; height=&quot;650&quot; data-origin-width=&quot;1082&quot; data-origin-height=&quot;650&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실전 프로젝트&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;TIL: OES 기반 금속 에칭 공정 이상탐지 분석 정리&lt;/h1&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;오늘 학습한 내용&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오늘은 금속 에칭 공정에서 수집된 OES 스펙트럼 데이터를 활용해 정상 공정과 이상 공정의 차이를 분석하고, 이를 머신러닝 기반 이상탐지 모델로 연결하는 방법을 정리했다. 분석 대상은 ev_data, oes_data, rfm_data였지만, 이번 보고서의 중심은 oes_data.csv 기반의 Fault Detection &amp;amp; Classification이었다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;OES 데이터 구조 이해&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;OES 데이터는 총 4,786개의 row와 131개의 column으로 구성되어 있었다. 이 중 파장 컬럼은 129개이며, S1, S2, S3 세 개 센서가 각각 43개 파장을 측정한 구조였다. 파장 범위는 250.0~791.5 nm였고, 결측치는 0건으로 데이터 품질 자체는 양호했다. 웨이퍼 수는 총 126개이며, calibration 106개와 fault 20개로 구성되어 있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실험 그룹은 29, 31, 33 세 그룹으로 나뉘어 있었고, 각 그룹은 서로 다른 시점에 수행되었기 때문에 장비 상태, 챔버 오염도, 센서 보정 상태 등에 따라 정상 스펙트럼 기준선이 달라질 수 있었다. 이를 group drift로 보고, 전체 calibration 기준뿐 아니라 그룹별 calibration 기준인 local baseline을 함께 적용해야 한다는 점을 확인했다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;주요 OES 파장과 공정 의미&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;OES에서 강하게 나타나는 피크 파장은 플라즈마 내부의 반응종과 식각 부산물 변화를 반영한다. 특히 272.2 nm와 278.3 nm는 Al 원자선으로, 알루미늄 식각 반응과 관련이 크다. 394.4/395.8 nm 역시 Al 발광선으로 fault 조건에서 반복적으로 이탈이 관찰되었다. 544.2 nm는 Cl 또는 AlCl 반응 생성물과 관련된 파장으로, 식각 부산물 변화 지표로 활용할 수 있었다. 725.0/753.7 nm는 Cl 원자선으로 Cl 플라즈마 밀도 변화를 확인하는 데 의미가 있었다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Group Drift와 Local Baseline 보정&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;같은 calibration 공정이라도 실험 그룹에 따라 OES intensity 기준선이 달라졌다. 특히 272.2 nm, 278.3 nm, 261.8 nm처럼 Al 관련 고강도 파장에서 group drift가 크게 나타났다. 따라서 전체 calibration 평균을 기준으로 보는 global baseline만 사용하면 fault와 group 차이를 혼동할 가능성이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이를 보완하기 위해 각 실험 그룹 내부의 calibration 평균과 표준편차를 기준으로 local_z를 계산했다. 이 방식은 그룹 간 기준선 차이를 줄이고, 실제 fault 이탈 정도를 더 안정적으로 확인하는 데 필요했다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;정상과 Fault의 스펙트럼 차이&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;local_z 분석 결과, fault 유형에 따라 이탈 파장과 탐지 난이도가 다르게 나타났다. TCP +50 조건에서는 272.2 nm와 544.2 nm에서 큰 이탈이 확인되어 탐지가 쉬웠고, TCP +30과 Pr +3 조건도 비교적 명확하게 구분되었다. 반면 RF +10, Cl2 -5, BCl3 +5, He Chuck fault는 OES 신호 변화가 작아 탐지가 어려웠다. 특히 He Chuck은 웨이퍼 온도 제어 이상이지만 OES는 플라즈마 발광을 측정하는 방식이기 때문에 OES만으로는 탐지가 거의 불가능했다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;파생변수 생성 방향&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;OES 시계열을 웨이퍼 단위로 변환하기 위해 다양한 파생변수를 만들었다. 사용한 변수는 파장별 평균, 표준편차, 최솟값, 최댓값, range 같은 기본 통계량과 AUC, 구간별 평균, rise/drop index, slope, global 기준 편차, local 기준 이탈값 등이었다. 최종적으로 웨이퍼 1개당 46개의 통계적으로 유의한 feature를 선정했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Mann-Whitney U 검정과 FDR 보정을 적용한 결과, local_abs_z_mean 계열 feature가 fault 구분에 매우 중요하게 나타났다. 상위 feature에는 S1 395.8 nm, S1 394.4 nm, S1 308.2 nm, S1 644.9 nm, S1 250.0 nm 등이 포함되었다. 이는 fault 탐지에서 단순 intensity보다 calibration 기준 대비 얼마나 벗어났는지를 보는 방식이 더 유효하다는 점을 보여준다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;머신러닝 모델 결과&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모델은 Logistic Regression, Random Forest, LightGBM 세 가지를 사용했고, Optuna로 하이퍼파라미터 튜닝을 진행했다. 검증 방식은 Leave-one-experiment-out과 LOOCV를 함께 사용했다. Leave-one-experiment-out은 특정 실험 그룹 하나를 통째로 test set으로 두는 방식이기 때문에 group drift 영향을 포함한 현실적인 성능 평가에 가깝다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최종 성능을 보면 Random Forest가 F1 기준 0.743으로 가장 높았고, Logistic Regression은 ROC-AUC 0.905로 가장 높았다. Precision과 Recall의 균형은 Logistic Regression이 상대적으로 좋았다. 다만 LOOCV는 Leave-one-experiment-out보다 ROC-AUC가 높게 나왔는데, 이는 group drift 영향을 제대로 배제하지 못해 성능이 낙관적으로 평가될 수 있기 때문이다. 따라서 실제 해석은 Leave-one-experiment-out 기준으로 보는 것이 더 적절하다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;오분류와 탐지 한계&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오분류 분석에서는 fault를 정상으로 판단하는 False Negative가 특히 중요했다. 공정 이상탐지에서는 정상 오경보보다 fault 미탐이 더 위험하기 때문이다. Random Forest는 오분류 9건, LightGBM은 10건, Logistic Regression은 11건이었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;탐지가 어려운 fault는 주로 OES 신호에 직접적인 변화를 만들지 않는 조건이었다. He Chuck, Cl2 -5, RF +10, BCl3 +5는 평균 fault probability가 낮아 OES 단독 탐지에 한계가 있었다. 반면 TCP +50, TCP +30, Pr +3, Cl2 -10처럼 플라즈마 에너지나 반응물 농도 변화가 큰 fault는 OES 스펙트럼에 명확히 반영되어 탐지가 가능했다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;공정 해석&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;TCP 파워가 증가하면 플라즈마 밀도가 증가하고, 이에 따라 Al 관련 발광선인 272.2 nm와 394.4 nm intensity가 증가하는 경향을 보였다. 반대로 TCP 파워 감소는 플라즈마 약화와 전체 발광 강도 감소로 이어질 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가스 유량 이상에서는 Cl2 -10 fault가 뚜렷했다. Cl 농도 감소는 AlCl 반응 생성물 변화로 이어지고, 544.2 nm와 Cl I 계열 파장에 큰 영향을 준 것으로 해석된다. 압력 증가 fault는 플라즈마 충돌 빈도와 이온 방향성에 영향을 주며, Pr +3 조건에서는 272.2 nm와 394.4 nm에서 명확한 이탈이 확인되었다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;FDC 전략&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;OES 기반 FDC에서는 272.2 nm, 394.4/395.8 nm, 544.2 nm, 725.0/753.7 nm 등을 실시간 모니터링 대상으로 삼을 수 있다. 알람 기준은 전체 기준이 아니라 그룹별 calibration 기준의 local_abs_z를 사용하는 것이 적절하다. 예를 들어 272.2 nm와 394.4/395.8 nm는 local_abs_z &amp;ge; 3.0, 544.2 nm와 725.0/753.7 nm는 local_abs_z &amp;ge; 2.5 수준으로 관리할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대시보드에는 OES local_abs_z 이상 점수, 주요 파장별 local_z 추세, Fault Probability, 다변량 이상 점수, 기여 파장 상위 표시, 미탐 fault 리뷰 패널, EV/RFM 연결 분석 등을 포함하는 것이 좋다. 이를 통해 단순히 fault 여부만 판단하는 것이 아니라 어떤 파장과 공정 조건이 이상에 기여했는지까지 해석할 수 있다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;느낀 점&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 분석을 통해 OES는 플라즈마 반응 결과를 직접 반영하는 강력한 이상탐지 지표가 될 수 있지만, 모든 fault를 단독으로 탐지할 수 있는 것은 아니라는 점을 확인했다. 특히 He Chuck, RF 소폭 변화, 가스 유량 소폭 변화처럼 OES에 직접적인 intensity 변화를 만들지 않는 fault는 EV와 RFM 데이터를 함께 봐야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 앞으로는 OES 기준으로 공정 step을 나누고, 해당 시간축에 EV와 RFM 데이터를 보간 또는 집계해 통합 feature를 구성하는 방향이 필요하다. 최종적으로는 OES + EV + RFM 통합 모델을 구축해 fault 탐지 범위를 넓히고, fault type별 원인 분류까지 연결하는 것이 다음 과제다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
      <category>QAQC_5기 부트캠프/실전 프로젝트</category>
      <author>두껍22</author>
      <guid isPermaLink="true">https://eeengineer.tistory.com/8</guid>
      <comments>https://eeengineer.tistory.com/8#entry8comment</comments>
      <pubDate>Mon, 1 Jun 2026 21:13:27 +0900</pubDate>
    </item>
  </channel>
</rss>