<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>푸잉이의 기술블로그</title>
    <link>https://bioplusbigdata.tistory.com/</link>
    <description>푸잉이의 기술블로그</description>
    <language>ko</language>
    <pubDate>Wed, 1 Jul 2026 08:05:58 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>data고수</managingEditor>
    <image>
      <title>푸잉이의 기술블로그</title>
      <url>https://tistory1.daumcdn.net/tistory/5435758/attach/7c29d49450ad4ed7a97b95222ceff0f8</url>
      <link>https://bioplusbigdata.tistory.com</link>
    </image>
    <item>
      <title>[1주차] Node.js 교과서</title>
      <link>https://bioplusbigdata.tistory.com/61</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;회사에서 친하게 지내는 멤버들이 자바의 자도 모르는 나를 포함하여 Node.js 스터디를 진행하기로 했다.&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;h4 data-ke-size=&quot;size20&quot;&gt;책: Node.js 교과서 개정 3판&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;226&quot; data-origin-height=&quot;282&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/m7dii/btsLlJq3QLQ/AKFkauzuvS03ps2PYGdPQ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/m7dii/btsLlJq3QLQ/AKFkauzuvS03ps2PYGdPQ0/img.png&quot; data-alt=&quot;길벗 출판사&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/m7dii/btsLlJq3QLQ/AKFkauzuvS03ps2PYGdPQ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fm7dii%2FbtsLlJq3QLQ%2FAKFkauzuvS03ps2PYGdPQ0%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;226&quot; height=&quot;282&quot; data-origin-width=&quot;226&quot; data-origin-height=&quot;282&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;길벗 출판사&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;공부 방법: 총 17장까지 구성된 책으로 1주일에 한 단원 씩 공부하고 5문제 출제하기로 하였다.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5문제 출제 하지 못한다면 다음날 스터디 멤버들에게 점심 쏘기 + 실 중앙에서 제로투ㅋㅋㅋㅋㅋㅋㅋㅋ&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;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;[1장] 노드 시작하기&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1.1 핵심 개념 이해하기&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1.2 서버로서의 노드&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1.3 서버 외의 노드&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1.4 개발 환경 설정하기&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1.5 함께 보면 좋을 자료&amp;nbsp;&lt;/b&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1.1 핵심 개념 이해하기&amp;nbsp;&lt;/b&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;b&gt;Node.js란 (노드 공식 사이트)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;: Chrome V8 Javascript 엔진으로 빌드된 자바스크립트 런타임&lt;/span&gt;&lt;/b&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;b&gt;1.1.1 서버&amp;nbsp;&lt;/b&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;: 네트워크를 통해 클라이언트에 정보나 서비스를 제공하는 컴퓨터 or 프로그램&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 style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;■ 노드&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; 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;b&gt;1.1.2 런타임&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;■ 노드&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;: 자바스크립트 런타임&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 자바스크립트 언어로 만든 프로그램을 실행할 수 있는 환경&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;■ 런타임&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;: 특정 언어로 만든 프로그램들을 실행할 수 있는 환경&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;■ 자바스크립트 프로그램&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;기존) 웹 브라우저 위에서만 실행 가능&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;현재) 구글 V8 엔진 기반으로 노드 구현&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;*V8 : 오픈소스 자바스크립트 엔진&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;■ 라이브러리&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;: libuv&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;- 특성: 이벤트 기반, 논블로킹 I/O 구현&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;b&gt;1.1.3 이벤트 기반&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;■ 이벤트 기반 (Event-driven)&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;: 이벤트(1. 클릭, 2. 네트워크 요청 등)가 발생할 때, 지정해 둔 작업 (1. 미리 등록, 2. 이벤트 리스너에 콜백함수 등록 등)을 수행하는 방식&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;■ 이벤트 루프 (Event loop)&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; 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;■ 백그라운드&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- setTimeout 같은 타이머나 이벤트 리스너들이 대기하는 곳&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;■ 태스크 큐&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;- 이벤트 발생 후, 백그라운드 -&amp;gt; 태스크 큐로 콜백 함수 보냄&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1.1.4 논블로킹 I/O&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;■ 논블로킹 (Non-blocking)&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;: 이전 작업이 완료될 때까지 대기하지 않고 다음 작업을 수행하는 것&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;-&amp;gt; ex. setTime(콜백, 0)은 논블로킹으로 만들기 위해 사용하는 기법&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;■ 블로킹 (Blocking)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: 이전 작업이 끝나야만 다음 작업을 수행하는 것&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;■ 노드&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: I/O 작업을 백그라운드로 넘겨 동시에 처리 함&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;b&gt;1.1.5 싱글 스레드&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; 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;- 같은 주소의 메모리에 접근 가능&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; 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;- 프로세스 간에는 메모리 등 자원 공유 x&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; ex. 노드나 웹 브라우저 같은 프로그램&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;■ 싱글스레드 &amp;amp; 블로킹&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;- 점원이 고객1의 주문 받고, 고객1에게 서빙 후 고객 2 주문 받고, 고객2 서빙&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 비효율&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;■ 싱글스레드 &amp;amp; 논블로킹&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 노드가 채택하고 있는 방식&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 점원이 고객1 주문 받고 주방에 전달, 고객2 주문 받고 주방에 전달, 고객3 주문 받고 주방에 전달&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1.2 서버로서의 노드&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Backgroud&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: 서버는 기본적으로 I/O 요청이 많이 발생 함&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;(네트워크나 DB, 디스크 작업 같은 I/O 에 특화되어 있기 때문)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; ex. 주식 차트, 실시간 채팅 애플리케이션. JSON 데이터를 제공하는 API 서버&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;p data-ke-size=&quot;size16&quot;&gt;- 기본적으로 싱글 스레드라 CPU 코어 하나만 사용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- CPU 작업이 많은 서버로는 부적합&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;- 어중간한 성능&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;+추가 공부&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;■ 웹 서버&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: 웹 페이지와 웹 애플리케이션을 클라이언트에게 제공하는 역할을 수행하는 컴퓨터 프로그램 or 하드웨어&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;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;1. 사용자가 웹 브라우저를 통해 웹 사이트에 접속&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 웹 브라우저는 해당 웹 페이지의 주소를 웹 서버에 요청&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 웹서버는 클라이언트 요청 받아들이고, 요청된 웹 리소스 (HTML 파일, 이미지, CSS, JavaScript 등) 위치 파악&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 웹서버는 저장된 위치에서 파일 가져옴&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. 웹 서버는 요청에 따른 적절한 http 응답을 생성 (상태 코드, 헤더, 본문 등 포함)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. 웹 브라우저는 받은 리소스를 기반으로 html 문서를 파싱 (&lt;b&gt;주어진 데이터를 해석하고 분석하여 원하는 형식 또는 구조로 변환하는 작업),&amp;nbsp;&lt;/b&gt;CSS 스타일링 적용, JavaScript 코드를 실행하여 웹 페이지 렌더링&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7. 웹 페이지에 표시&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;■ 웹서버의 종류&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;- 아파치 (Apache): 가장 널리 사용되는 오픈 소스 웹 서버 소프트웨어&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;- 엔진엑스 (Nginx): 빠른 성능과 고가용성을 제공하는 웹 서버 및 리버스 프록시 소프트웨어&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;-&amp;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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Ref: &lt;a href=&quot;https://wikidocs.net/208045&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://wikidocs.net/208045&lt;/a&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;&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;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;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;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;</description>
      <category>IT/Node.js</category>
      <author>data고수</author>
      <guid isPermaLink="true">https://bioplusbigdata.tistory.com/61</guid>
      <comments>https://bioplusbigdata.tistory.com/61#entry61comment</comments>
      <pubDate>Mon, 16 Dec 2024 19:58:50 +0900</pubDate>
    </item>
    <item>
      <title>평가 지표</title>
      <link>https://bioplusbigdata.tistory.com/60</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;평가 지표&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1) 회귀 (Regression) 문제&amp;nbsp;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;수치를 예측하는 문제, 평가 지표 RMSE, MAE 등&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2_1) 이진 분류(Binary Classification) 문제&amp;nbsp;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터가 어떤 속성에 속하는지를 예측하는 문제&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) 0 or 1의 레이블로 예측하는 경우&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) 0에서 1 사이의 확률로 예측하는 경우&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;1)의 평가 지표 =&amp;gt; F1-Score&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2)의 평가 지표 =&amp;gt; logloss, AUC&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2_2) 다중 클래스 분류 (Multi-class Classification)문제&amp;nbsp;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다중 클래스 분류 (Multi-class classification)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;=&amp;gt; 행 데이터 (Record)가 여러 클래스 중 어느 하나의 선택지에 속하는 분류 문제&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다중 레이블 분류 (Multi-class classification)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;=&amp;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;1) 데이터가 포함되었다고 예측되는 클래스의 레이블을 제출하는 경우&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) 데이터가 각 클래스에 포함될 확률을 0~1 사이의 수치로 제출하는 경우&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;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;=&amp;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;gt; mean-F1 or macro-F1&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;3) 추천 문제&amp;nbsp;&lt;/b&gt;&lt;/h4&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;1) 순위를 매겨 예측 결과를 제출하는 경우&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) 순위를 매기지 않고 제출하는 경우&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1-&amp;gt; 행 데이터에 여러개의 정답이 있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;평가지표 =&amp;gt; map@k2&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2-&amp;gt; 여러개의 예측 값을 제출&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;평가지표 =&amp;gt; mean-F1, macro-F1&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;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Reference&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://ahns-tory.tistory.com/4&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://ahns-tory.tistory.com/4&lt;/a&gt;&lt;/p&gt;</description>
      <category>IT/Python</category>
      <author>data고수</author>
      <guid isPermaLink="true">https://bioplusbigdata.tistory.com/60</guid>
      <comments>https://bioplusbigdata.tistory.com/60#entry60comment</comments>
      <pubDate>Fri, 25 Aug 2023 18:16:08 +0900</pubDate>
    </item>
    <item>
      <title>[Python] 클래스(Class), 객체(Object), 인스턴스(Instance)</title>
      <link>https://bioplusbigdata.tistory.com/59</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;내가 공부하다 헷갈려서 정리한 요약본&amp;nbsp;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1. 객체 지향 프로그래밍 (Objected Oriented Programing)&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;모든 개념을 객체(Object, 사물)로 보고 객체 중심으로 프로그램을 진행하는 기법&lt;/li&gt;
&lt;li&gt;ex) 스마트폰, 에어컨, 세탁기 등 독립된 객체들이 가진 고유의 기능으로 서로 상호 작용하여 독립된 단위로 구분하고 파악할 수 있도록 하는 것.&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #dddddd; color: #ee2323;&quot;&gt;프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;ex) 스마트폰, 에어컨, 세탁기 각 기능들을 가진 객체를 만들고, 서로 유기적인 상호작용을 통해 편안한 집을 만드는 것&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1) 장점&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;코드 재사용 용이&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;-&amp;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;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -&amp;gt; 객체 지향 프로그래밍은 수정해야할 부분이 클래스 내부에 멤버 변수 혹은 메서드로 존재하기 때문에 해당 부분만 수정하면 됨.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;cf) 절차 지향 프로그래밍은 코드를 수정할 때 일일이 찾아 수정해야 함&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;대형프로젝트에 적합&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -&amp;gt; 클래스 단위로 모듈화시켜 개발할 수 있어 여러 회사에서 프로젝트를 개발할 때 업무 분담하기 쉬움&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2) 단점&lt;/b&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;/li&gt;
&lt;li&gt;객체가 많으면 용량 커질 수 있음&lt;/li&gt;
&lt;li&gt;설계시 많은 시간과 노력이 필요함&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;2. 객체 (Object)&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;객체는 속성 및 동작을 가짐&amp;nbsp;&lt;/li&gt;
&lt;li&gt;ex) 포켓몬이라는 객체 or 인스턴스 -&amp;gt; 이름, 나이, 몸무게 등 속성, 변수&lt;/li&gt;
&lt;li&gt;ex) 몸통박치기, 앞구르기,뒷구르기 등 -&amp;gt; 메소드 (Method)&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;i&gt;즉, 객체 혹은 인스턴스는 &quot;변수와 메소드&quot;로 구성되어 있음.&lt;/i&gt;&lt;/blockquote&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;b&gt;1) 객체와 인스턴스의 차이&amp;nbsp;&lt;/b&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;/li&gt;
&lt;li&gt;클래스 이름 뒤에 ()를 넣으면 만듦.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;그 객체가 어떤 클래스의 객체인지 설명할 때 사용.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;3. 클래스 (Class)&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1) 클래스란?&lt;/b&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;/li&gt;
&lt;li&gt;특정한 종류의 객체들을 찍어내는 template&lt;/li&gt;
&lt;li&gt;복잡한 코드를 쉽게 호출하고 사용할 수 있게 한다.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;어떤 문제를 해결하기 위한 데이터를 만들기 위해 추상화를 거쳐 집단에 속하는 속성과 행위를 변수와 메서드로 정의한 것&lt;/li&gt;
&lt;li&gt;ex) 빨래만 해주는 세탁기를 만드는 것&lt;/li&gt;
&lt;li&gt;객체를 만들기 위한 메타정보&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;클래스란, 어떤 물건을 만들기 위한 틀이고, 똑같은 물건 (인스턴스)를 만들 수 있다.&amp;nbsp;&lt;/i&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2) 조건&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;형식: Class 클래스 이름:&lt;/li&gt;
&lt;li&gt;클래스 이름은 반드시 첫 글자는 대문자로 입력&amp;nbsp;&lt;/li&gt;
&lt;li&gt;클래스 구성&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1. 속성 (Attribute)&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - 객체가 가지는 여러 가지 데이터를 보관&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - 멤버 &lt;b&gt;변수&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2. 매서드 (Method)&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;- 객체와 관련된 동작을 하는 내부 함수&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;- 멤버 &lt;b&gt;함수&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3) 생성자 (Constructor)&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;__init__(): 메소드는 클래스에서 가장 먼저 시작시키는 메소드&amp;nbsp;&lt;/li&gt;
&lt;li&gt;특별한 메서드로 클래스로 객체를 생성할 때 한 번 실행됨.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;생성자를 사용하면 객체가 생성될 때 객체의 속성을 생성 및 초기화할 수 있음.&lt;/li&gt;
&lt;li&gt;클래스 내에서 특별한 이름(__init__)을 가지면 객체가 생성될 때 &lt;span style=&quot;color: #ee2323; background-color: #dddddd;&quot;&gt;자동으로 호출되는 함수&lt;/span&gt;가 있는 것을 생성자라 함.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background-color: #f7f7f7; color: #000000;&quot;&gt;
&lt;div&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; A:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #795e26;&quot;&gt;__init__&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #001080;&quot;&gt;self&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;):&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #795e26;&quot;&gt;print&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #a31515;&quot;&gt;'apple'&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;
&amp;nbsp; &amp;nbsp; a= 0&lt;br /&gt;
&lt;div&gt;&lt;span style=&quot;color: #000000;&quot;&gt;p = A()&amp;nbsp; 출력값 =&amp;gt; apple&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;__init__ 이 자동으로 호출 // init 이 초기화하다라는 뜻인 initialize 약어&lt;/li&gt;
&lt;li&gt;`__`로 시작하는 함수는 모두 특별한 메서드&lt;/li&gt;
&lt;li&gt;member1= A().a -&amp;gt; 생성된 인스턴스에 점을 찍어서 인스턴스 변수나 메서드에 접근할 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;4) Self&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;객체의 인스턴스 그 자체를 말함&lt;/li&gt;
&lt;li&gt;객체 자기 자신을 참조하는 매개변수&amp;nbsp;&lt;/li&gt;
&lt;li&gt;self를 사용함으로 클래스 내에 정의한 멤버에 접근할 수 있음.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #dddddd; color: #ee2323;&quot;&gt;class &lt;b&gt;안&lt;/b&gt;&lt;/span&gt;에서 인스턴스를 지칭할 방법이 없으니깐 self를 이용하여 클래스의 메소드와 속성에 접근&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background-color: #f7f7f7; color: #000000;&quot;&gt;
&lt;div&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; Cat:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #795e26;&quot;&gt;__init__&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #001080;&quot;&gt;self&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #001080;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #001080;&quot;&gt;color&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;): &lt;/span&gt;&lt;span style=&quot;color: #008000;&quot;&gt;#self는 class 안에서 만들어진 인스턴스를 지칭&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #001080;&quot;&gt;self&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.name = name&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #001080;&quot;&gt;self&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.color= color&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #795e26;&quot;&gt;info&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #001080;&quot;&gt;self&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;):&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #795e26;&quot;&gt;print&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #a31515;&quot;&gt;'고양이 이름은'&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #001080;&quot;&gt;self&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.name, &lt;/span&gt;&lt;span style=&quot;color: #a31515;&quot;&gt;'색깔은'&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #001080;&quot;&gt;self&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.color)&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span style=&quot;color: #000000;&quot;&gt;cat1= Cat(&lt;/span&gt;&lt;span style=&quot;color: #a31515;&quot;&gt;'네로'&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #a31515;&quot;&gt;'검정'&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color: #008000;&quot;&gt;#cat1 인스턴스 생성&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #000000;&quot;&gt;cat2= Cat(&lt;/span&gt;&lt;span style=&quot;color: #a31515;&quot;&gt;'네비'&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #a31515;&quot;&gt;'파랑'&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color: #008000;&quot;&gt;#cat2 인스턴스 생성&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span style=&quot;color: #000000;&quot;&gt;cat1.info()&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #000000;&quot;&gt;cat2.info()&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://wikidocs.net/70862&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://wikidocs.net/70862&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://jeong-pro.tistory.com/95&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://jeong-pro.tistory.com/95&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1691235416207&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;객체 지향 프로그래밍이 뭔가요? (꼬리에 꼬리를 무는 질문 1순위, 그놈의 OOP)&quot; data-og-description=&quot;객체 지향 프로그래밍(Object Oriented Programming) 여러 소프트웨어 관련 IT기업 신입사원 기술면접에서 면접자들 긴장을 풀어줄 겸 워밍업으로 자주 나오는 질문이다. &amp;quot;객체 지향 프로그래밍에 대해 &quot; data-og-host=&quot;jeong-pro.tistory.com&quot; data-og-source-url=&quot;https://jeong-pro.tistory.com/95&quot; data-og-url=&quot;https://jeong-pro.tistory.com/95&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cJhaiI/hyTy8oARBC/yeTcnZwm78O6jUmbKM4Wdk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/cExbaL/hyTxZNz9sd/1717s3QtFxPe7VMislMVDK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/bezCsb/hyTy7pGNaP/vSeNVkaEDIv4LlHWveIbm1/img.png?width=264&amp;amp;height=200&amp;amp;face=0_0_264_200&quot;&gt;&lt;a href=&quot;https://jeong-pro.tistory.com/95&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://jeong-pro.tistory.com/95&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cJhaiI/hyTy8oARBC/yeTcnZwm78O6jUmbKM4Wdk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/cExbaL/hyTxZNz9sd/1717s3QtFxPe7VMislMVDK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/bezCsb/hyTy7pGNaP/vSeNVkaEDIv4LlHWveIbm1/img.png?width=264&amp;amp;height=200&amp;amp;face=0_0_264_200');&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;객체 지향 프로그래밍이 뭔가요? (꼬리에 꼬리를 무는 질문 1순위, 그놈의 OOP)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;객체 지향 프로그래밍(Object Oriented Programming) 여러 소프트웨어 관련 IT기업 신입사원 기술면접에서 면접자들 긴장을 풀어줄 겸 워밍업으로 자주 나오는 질문이다. &quot;객체 지향 프로그래밍에 대해&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;jeong-pro.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;https://www.youtube.com/watch?v=QCNkJ3SaZhk&lt;/p&gt;</description>
      <category>IT/Python</category>
      <author>data고수</author>
      <guid isPermaLink="true">https://bioplusbigdata.tistory.com/59</guid>
      <comments>https://bioplusbigdata.tistory.com/59#entry59comment</comments>
      <pubDate>Sat, 5 Aug 2023 20:48:29 +0900</pubDate>
    </item>
    <item>
      <title>[빅분기] 제 6회 빅데이터 분석기사 실기 합격 및 후기 (비전공자)</title>
      <link>https://bioplusbigdata.tistory.com/58</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;필자는 개인적인 사정으로 제5회 실기를 치지 못해 6회 시험을 쳤다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1년에 2번 밖에 없는 시험이라 만약 떨어지면? -&amp;gt; 12월까지 기다려야 했다...&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결과는 진짜 60점 최고의 효율을 보여주는 60점을 받았다 ㅎㅎ&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;656&quot; data-origin-height=&quot;446&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/diaQ31/btsm8JXcJv0/EL5PimgyIaObebINY5Lon0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/diaQ31/btsm8JXcJv0/EL5PimgyIaObebINY5Lon0/img.png&quot; data-alt=&quot;제6회 빅데이터분석기사-실기합격&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/diaQ31/btsm8JXcJv0/EL5PimgyIaObebINY5Lon0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdiaQ31%2Fbtsm8JXcJv0%2FEL5PimgyIaObebINY5Lon0%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;656&quot; height=&quot;446&quot; data-origin-width=&quot;656&quot; data-origin-height=&quot;446&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;제6회 빅데이터분석기사-실기합격&lt;/figcaption&gt;
&lt;/figure&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;&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;0. 파이썬 한권으로 끝내기: 데이터분석전문가&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;STEP 별로 정리가 정말 잘되어 있어서 추천한다!!&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;a href=&quot;https://product.kyobobook.co.kr/detail/S000061351837&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://product.kyobobook.co.kr/detail/S000061351837&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1689044022290&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;파이썬 한권으로 끝내기: 데이터분석전문가(ADP) + 빅데이터분석기사 실기대비 | 데싸라면 - 교보&quot; data-og-description=&quot;파이썬 한권으로 끝내기: 데이터분석전문가(ADP) + 빅데이터분석기사 실기대비 | 도서 특징■ 한 권으로 데이터분석전문가는 물론 빅데이터분석기사 취득까지 한 번에!■ 초보자도 쉽게 코드를 &quot; data-og-host=&quot;product.kyobobook.co.kr&quot; data-og-source-url=&quot;https://product.kyobobook.co.kr/detail/S000061351837&quot; data-og-url=&quot;https://product.kyobobook.co.kr/detail/S000061351837&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/q3Eww/hyTir2V9dM/lw8BKBo5aLK5kJ8BwmDKUk/img.jpg?width=458&amp;amp;height=600&amp;amp;face=0_0_458_600,https://scrap.kakaocdn.net/dn/b4zy3o/hyTio6dlaa/I3BNiAIU2LpwXw0FIy8Zq1/img.jpg?width=458&amp;amp;height=600&amp;amp;face=0_0_458_600,https://scrap.kakaocdn.net/dn/icalY/hyTiu6qITq/XbKfomvOLq6XwskJMLUMa0/img.jpg?width=814&amp;amp;height=6541&amp;amp;face=0_0_814_6541&quot;&gt;&lt;a href=&quot;https://product.kyobobook.co.kr/detail/S000061351837&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://product.kyobobook.co.kr/detail/S000061351837&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/q3Eww/hyTir2V9dM/lw8BKBo5aLK5kJ8BwmDKUk/img.jpg?width=458&amp;amp;height=600&amp;amp;face=0_0_458_600,https://scrap.kakaocdn.net/dn/b4zy3o/hyTio6dlaa/I3BNiAIU2LpwXw0FIy8Zq1/img.jpg?width=458&amp;amp;height=600&amp;amp;face=0_0_458_600,https://scrap.kakaocdn.net/dn/icalY/hyTiu6qITq/XbKfomvOLq6XwskJMLUMa0/img.jpg?width=814&amp;amp;height=6541&amp;amp;face=0_0_814_6541');&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;파이썬 한권으로 끝내기: 데이터분석전문가(ADP) + 빅데이터분석기사 실기대비 | 데싸라면 - 교보&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;파이썬 한권으로 끝내기: 데이터분석전문가(ADP) + 빅데이터분석기사 실기대비 | 도서 특징■ 한 권으로 데이터분석전문가는 물론 빅데이터분석기사 취득까지 한 번에!■ 초보자도 쉽게 코드를&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;product.kyobobook.co.kr&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;p data-ke-size=&quot;size16&quot;&gt;1. 유튜브에 '퇴근후딴짓' 님께서 올려주신 강의&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;2. 유튜브에 '대구빅데이터활용센터'님께서 올려주신 강의&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로 제 1유형 2유형에 대한 감을 파악했다.&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;제 3유형은 어떻게 접근 해야할지 몰라서,&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;퇴근후딴짓님께서 인프런에 올려주신 강의(25% 할인할 때 구매)를 듣고 3번 정도 반복해서 들었다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 그래서 굳이 help, dir 과 같은 내장함수는 사용하지 않고 외워서 다 작성했다.&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;우선 제2유형&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 학교에서 하는 내용이라 어렵지 않게 만점을 받을 수 있었다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. EDA-&amp;gt; 데이터 특성 파악&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결측치 제거: isnull&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Feature engineering: One-Hot encoding, get_dummies를 사용&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Modeling: RandomForest -&amp;gt; train, valid data 검증&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Hyperparameter: n_estimator, depth 조절&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;제 1유형&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;퇴근후딴짓님께서 인프런에 올려주신 강의(25% 할인할 때 구매)를 듣고 3번 정도 반복해서 들었다.&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;gt; datetime 함수 사용&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;</description>
      <category>IT/자격증</category>
      <author>data고수</author>
      <guid isPermaLink="true">https://bioplusbigdata.tistory.com/58</guid>
      <comments>https://bioplusbigdata.tistory.com/58#entry58comment</comments>
      <pubDate>Tue, 11 Jul 2023 15:58:27 +0900</pubDate>
    </item>
    <item>
      <title>Logistic Regression</title>
      <link>https://bioplusbigdata.tistory.com/57</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;Model을 선택하기 위해&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Minimize the error&lt;/li&gt;
&lt;li&gt;Maximize the probability&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Logistic Regression&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;독립 변수의 비선형 결합을 이용하여 사건의 발생 가능성을 예측하는 통계기법&lt;/li&gt;
&lt;li&gt;입력 데이터가 주어졌을 때 해당 데이터의 결과가 특정 분류로 나눔 (Classification)&lt;/li&gt;
&lt;li&gt;독립변수를 input값으로 받아 종속변수가 1이 될 확률을 결과 값으로 하는 sigmoid 함수를 찾는 과정&lt;/li&gt;
&lt;li&gt;관측치가 특정 범주에 속할 확률로 계산&lt;/li&gt;
&lt;li&gt;Closed form solution이 없어 &amp;rarr; Gradient descent 방식으로 풀어야함&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&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;/li&gt;
&lt;li&gt;의료-질병 발생 가능성&lt;/li&gt;
&lt;li&gt;금융-사기 행위 분석, 위험도를 평가&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;*Closed form solution&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주어진 문제가 일반적으로 알려진 함수나 수학 연산으로 해를 구할 수 있는 식&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;In mathematics,&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;a closed-form expression is a mathematical expression (표현식) that&lt;/li&gt;
&lt;li&gt;uses a&amp;nbsp;&lt;b&gt;finite number&lt;/b&gt;&amp;nbsp;of&amp;nbsp;&lt;b&gt;standard operations&lt;/b&gt;. (&amp;larr;&lt;b&gt;유한한 갯수&lt;/b&gt;의&amp;nbsp;&lt;b&gt;연산&lt;/b&gt;&amp;nbsp;으로 표현됨)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;단위 계단 함수&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예측값 z가 0보다 클 경우 양성값으로 0보다 작을 경우 음성 값으로 주어짐&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;임계값이 0이면 임의로 판별, 단위 계단 함수는 불연속적이므로 미분이 불가능한하기 때문에, 대체 함수를 찾아야 함&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Sigmoid 함수&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;파라미터를 학습하기 위해 최대 우도 추정법 사용&lt;/li&gt;
&lt;li&gt;z를 0이나 1에 근사한 y값으로 전환, z=0 근처에서 급격하게 변화함&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;STEP 1. Sigmoid function&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$ y=\frac{1}{1+e^(-z)} $$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Step 2. z=w^T +B&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Step 3. 양변에 In,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;h(x)가 1에 가까우면 x는 class1에 보일 확률이 높음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;h(x)가 0에 가까우면 x는 class0에 보일 확률이 높음&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;f(x)의 best discrimination&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Odds (Odds ratio), 승산비&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;나머지 입력변수는 모두 고정시킨 상태에서 한 변수를 1단위 증가시켰을 때 변하는 odd 비율&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;장점&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;직접적으로 모델을 만들고 사전 데이터 분포에 대한 가정 필요 x&lt;/li&gt;
&lt;li&gt;class를 예측하며 근사 확률에 대한 예측도 제공&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>IT/대학원</category>
      <author>data고수</author>
      <guid isPermaLink="true">https://bioplusbigdata.tistory.com/57</guid>
      <comments>https://bioplusbigdata.tistory.com/57#entry57comment</comments>
      <pubDate>Tue, 20 Jun 2023 11:34:00 +0900</pubDate>
    </item>
    <item>
      <title>Maximum(최대) Likelihood(우도) Estimation(추정)</title>
      <link>https://bioplusbigdata.tistory.com/56</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;MLE란&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;M&lt;/b&gt;aximum(최대) &lt;b&gt;L&lt;/b&gt;ikelihood(우도) &lt;b&gt;E&lt;/b&gt;stimation(추정)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;어떤 분포가 데이터를 더 잘 나타내는 것인지 확인&lt;/li&gt;
&lt;li&gt;실제에서 데이터 전체나 모수가 주어지는 일 없음 &amp;rarr; 모수 추정 방법 중 하나&lt;/li&gt;
&lt;li&gt;연속형 변수에서 특정 사건이 일어날 확률 =0 &amp;rarr; 사건이 일어날 가능성을 비교 하기 힘듦&lt;/li&gt;
&lt;li&gt;특정 데이터셋을 가장 잘 설명할 수 있는 파라미터를 찾기 위함&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;*Estimation&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터의 성질을 대표하는 모수를 추정&lt;/li&gt;
&lt;li&gt;추론통계학에서는 모집단의 분포를 안다고 가정, ml에선 분포를 알기 힘들기 때문에 추정&lt;/li&gt;
&lt;li&gt;데이터가 어떤 분포를 따른다는 가정을 하는 모수통계기법&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;*Likelihood&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;우도/가능도&lt;/li&gt;
&lt;li&gt;관찰된 데이터가 추정한 분포로부터 나왔을 가능도&lt;/li&gt;
&lt;li&gt;관찰된 데이터로부터 특정 모수(세타, 파라미터)가 맞을 가능성&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>IT/대학원</category>
      <author>data고수</author>
      <guid isPermaLink="true">https://bioplusbigdata.tistory.com/56</guid>
      <comments>https://bioplusbigdata.tistory.com/56#entry56comment</comments>
      <pubDate>Mon, 19 Jun 2023 16:11:50 +0900</pubDate>
    </item>
    <item>
      <title>Linear Regression</title>
      <link>https://bioplusbigdata.tistory.com/55</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;Linear Regression&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Definition: It is a linear approach for modeling the relationship between a scalar response and one or more explanatory variables&lt;/li&gt;
&lt;li&gt;알려진 데이터 값을 사용하여 알 수 없는 데이터를 예측하는 분석 기법&lt;/li&gt;
&lt;li&gt;독립변인(x)이 종속변인(y)에 영향을 미치는지 알아보고자 하는 분석 방법&lt;/li&gt;
&lt;li&gt;한 개의 설명변수(x)에 기반한 경우 단순 선형 회귀&lt;/li&gt;
&lt;li&gt;두 개 이상의 설명변수(x)에 기반한 경우 다중 선형 회귀&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;용어&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;종속 변수(Dependent variable)=반응변수=y=다른 변수로부터 영향을 받는 변수=결과&lt;/li&gt;
&lt;li&gt;독립 변수(Independent variable)=설명변수=x=다른 변수에 영향을 주는 변수=원&lt;/li&gt;
&lt;li&gt;가중치: 입력신호가 결과 출력에 주는 영향도를 조절하는 매개변수&lt;/li&gt;
&lt;li&gt;편향: model의 output과 실제 값 사이의 제곱 error&lt;/li&gt;
&lt;li&gt;분산: 예측값끼리의 관계&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;빨간 점: 사람이 정해준 정답 (True)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파란 점: 컴퓨터가 예측한 값 (Predicted Value)&lt;/p&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;예측값과 정답간의 관계 (편향)&lt;/td&gt;
&lt;td&gt;편향 낮음&lt;/td&gt;
&lt;td&gt;편향 낮음&lt;/td&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;분산 낮음&lt;/td&gt;
&lt;td&gt;분산 높음&lt;/td&gt;
&lt;td&gt;분산 낮음&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;p data-ke-size=&quot;size16&quot;&gt;E(w)가 최소화하는 w를 찾아야 함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$ E(w)=\sum_{i=1}^{n}|f(x_{i})-y{i}| = \sum_{i=1}^{n}(f(x_{i})-y{i})^2 $$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$ f(x_{i})=w_{0} +w_{1}x_{1}+w_{2}x_{2}+w_{d}x_{id}=w_{0} + \sum_{j=1}^{d}w_{j}x_{ij} $$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최소화하기 위해 wj로 미분해서 0이 나오는 것을 찾기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;행렬로 바꾸어 계산하기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Aw=b&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;w= A^-1b&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;w= (X^TX)^-1(X^TY)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT/대학원</category>
      <author>data고수</author>
      <guid isPermaLink="true">https://bioplusbigdata.tistory.com/55</guid>
      <comments>https://bioplusbigdata.tistory.com/55#entry55comment</comments>
      <pubDate>Mon, 19 Jun 2023 14:07:50 +0900</pubDate>
    </item>
    <item>
      <title>k-Nearest Neighbors</title>
      <link>https://bioplusbigdata.tistory.com/54</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;K-Nearest Neighbor, KNN, K-최근접 이웃&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;지도학습 알고리즘&lt;/li&gt;
&lt;li&gt;Definition: It is one of the simplest Machine learning algorithms based on supervised learning techniuqe.&lt;/li&gt;
&lt;li&gt;분류와 회귀에 모두 사용&lt;/li&gt;
&lt;li&gt;데이터로부터 거리가 가까운 k개의 다른 데이터의 레이블을 참조하여 분류하는 알고리즘&lt;/li&gt;
&lt;li&gt;거리를 측정할 때, 유클리디안 거리 계산법 사용&lt;/li&gt;
&lt;li&gt;사용하는 곳: 영상에서 글자 인식, 얼굴 인식, 의료, 유전자 데이터 패턴 인식&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;KNN 프로세스&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;k를 선택한다. (*k는 주로 홀수)&lt;/li&gt;
&lt;li&gt;k개 이웃의 유클리드 거리 계산&lt;/li&gt;
&lt;li&gt;계산된 유클리드 거리에 따라 k개의 가장 가까운 이웃 선택&lt;/li&gt;
&lt;li&gt;k개의 이웃 중에서 각 범주의 데이터 포인트 수 카운팅&lt;/li&gt;
&lt;li&gt;이웃 수가 최대인 해당 범주에 새 데이터 포인트를 할당&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;고려사항&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결정경계(모델의 복잡도) Noise(이상치)&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;K값 높을수록&lt;/td&gt;
&lt;td&gt;경계 완만, 복잡도 낮음&lt;/td&gt;
&lt;td&gt;이상치에 덜민감&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;K값 낮을수록&lt;/td&gt;
&lt;td&gt;경계 각짐, 복잡도 증가&lt;/td&gt;
&lt;td&gt;이상치에 민감&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;거리 측정 방법&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;*Norm: 유한 차원의 벡터 공간에서 벡터의 절대적인 크기(Magnitude) or 벡터 간 거리&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;L1 Norm&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;:Manhattan distance&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;두 벡터 간의 거리를 절댓값으로 구한 것&lt;/li&gt;
&lt;li&gt;두 벡터를 빼고 절댓값을 취한 뒤 모두 더한 것&lt;/li&gt;
&lt;li&gt;맨하탄 거리 혹은 택시 거리라 하며, 택시가 도시의 블록 사이를 이동해 다른 지점으로 이동하는 공식&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;183&quot; data-origin-height=&quot;77&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b0hmfz/btsjXS28o7F/6XFHkpR2jgU21ekGQaF6H0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b0hmfz/btsjXS28o7F/6XFHkpR2jgU21ekGQaF6H0/img.png&quot; data-alt=&quot;그림1. Manhattan distance&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b0hmfz/btsjXS28o7F/6XFHkpR2jgU21ekGQaF6H0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb0hmfz%2FbtsjXS28o7F%2F6XFHkpR2jgU21ekGQaF6H0%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;183&quot; height=&quot;77&quot; data-origin-width=&quot;183&quot; data-origin-height=&quot;77&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;그림1. Manhattan distance&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;L2 Norm&lt;/h3&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;610&quot; data-origin-height=&quot;418&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dR0NOM/btsjYM8VRkC/y9dQTL1CopP8LL7RjLnG61/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dR0NOM/btsjYM8VRkC/y9dQTL1CopP8LL7RjLnG61/img.png&quot; data-alt=&quot;그림2. 유클리안 거리 계산법&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dR0NOM/btsjYM8VRkC/y9dQTL1CopP8LL7RjLnG61/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdR0NOM%2FbtsjYM8VRkC%2Fy9dQTL1CopP8LL7RjLnG61%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;452&quot; height=&quot;310&quot; data-origin-width=&quot;610&quot; data-origin-height=&quot;418&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;그림2. 유클리안 거리 계산법&lt;/figcaption&gt;
&lt;/figure&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;/li&gt;
&lt;li&gt;피타고라스의 성질에 대입하여 d를 계산&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;L1 norm L2 norm&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;다른 점으로 이동하는 방법&lt;/td&gt;
&lt;td&gt;여러개&lt;/td&gt;
&lt;td&gt;한 가지&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Outlier 영향&lt;/td&gt;
&lt;td&gt;robust&lt;/td&gt;
&lt;td&gt;큼&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gradient-based learning&lt;/td&gt;
&lt;td&gt;0에서 미분 불가능&lt;/td&gt;
&lt;td&gt;Regularization 효과 큼&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;*Regularization&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: 학습 기반의 알고리즘에서 모델이 과적합 되지 않도록 손실 함수에 특정한 규제 함수를 더하여 손실함수가 너무 작아지지 않도록 weight에 페널티를 주는 것&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;b&gt;Lk Norm, Linifite Norm&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;공식&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;543&quot; data-origin-height=&quot;151&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dLvaQR/btsjXTAZQxp/ycgAMMk3tj4CxZCDyfKlvk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dLvaQR/btsjXTAZQxp/ycgAMMk3tj4CxZCDyfKlvk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dLvaQR/btsjXTAZQxp/ycgAMMk3tj4CxZCDyfKlvk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdLvaQR%2FbtsjXTAZQxp%2FycgAMMk3tj4CxZCDyfKlvk%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;543&quot; height=&quot;151&quot; data-origin-width=&quot;543&quot; data-origin-height=&quot;151&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Cosine similarity&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;magnitude(거리)가 중요x, 성분의 ratio가 중요&lt;/li&gt;
&lt;li&gt;두 벡터 간의 코사인 각도를 구하여 두 벡터의 유사도를 의미&lt;/li&gt;
&lt;li&gt;1에 가까울 수록 유사도가 높다고 표현&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;597&quot; data-origin-height=&quot;176&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bYRKE2/btsjX4WzhMc/lSE7Sl9VHiHZggYKuH4Pf0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bYRKE2/btsjX4WzhMc/lSE7Sl9VHiHZggYKuH4Pf0/img.png&quot; data-alt=&quot;유사도에 따른 벡터의 방향&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bYRKE2/btsjX4WzhMc/lSE7Sl9VHiHZggYKuH4Pf0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbYRKE2%2FbtsjX4WzhMc%2FlSE7Sl9VHiHZggYKuH4Pf0%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;597&quot; height=&quot;176&quot; data-origin-width=&quot;597&quot; data-origin-height=&quot;176&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;유사도에 따른 벡터의 방향&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;공식&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;483&quot; data-origin-height=&quot;282&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/SBmYP/btsjYypzAwy/UEpp9RyS7KKNkjGWN7Kd30/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/SBmYP/btsjYypzAwy/UEpp9RyS7KKNkjGWN7Kd30/img.png&quot; data-alt=&quot;유사도 구하는 공식&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/SBmYP/btsjYypzAwy/UEpp9RyS7KKNkjGWN7Kd30/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSBmYP%2FbtsjYypzAwy%2FUEpp9RyS7KKNkjGWN7Kd30%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;483&quot; height=&quot;282&quot; data-origin-width=&quot;483&quot; data-origin-height=&quot;282&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;유사도 구하는 공식&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Jaccard similarity&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;공식&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;266&quot; data-origin-height=&quot;56&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lPqNX/btsjQfZGKEm/BWsOLjJNktUPsGXoXYAM5k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lPqNX/btsjQfZGKEm/BWsOLjJNktUPsGXoXYAM5k/img.png&quot; data-alt=&quot;Jaccard similarity&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lPqNX/btsjQfZGKEm/BWsOLjJNktUPsGXoXYAM5k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlPqNX%2FbtsjQfZGKEm%2FBWsOLjJNktUPsGXoXYAM5k%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;266&quot; height=&quot;56&quot; data-origin-width=&quot;266&quot; data-origin-height=&quot;56&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Jaccard similarity&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;변수 값 범위 재조정&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;K-NN 알고리즘을 사용하기 위해 변수들의 범위를 재종해야함&lt;/li&gt;
&lt;/ul&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;최소-최대 정규화&lt;/li&gt;
&lt;li&gt;z-점수 표준&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;장점 &amp;amp; 단점&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;장점 단점&lt;/p&gt;
&lt;table id=&quot;98f27cad-873a-4d12-8d7e-1d625afc4a7a&quot; style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr id=&quot;4e3389df-61fe-4c50-a7e8-fd06e8805956&quot;&gt;
&lt;td id=&quot;kav]&quot;&gt;&lt;b&gt;장점&lt;/b&gt;&lt;/td&gt;
&lt;td id=&quot;d\mH&quot;&gt;&lt;b&gt;단점&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;e07a99b8-350e-4728-855d-c70b308b4c25&quot;&gt;
&lt;td id=&quot;kav]&quot;&gt;&amp;bull; 단순하고 효율적 &amp;bull; 훈련 단계가 없음 (No training, Only inference step) &amp;bull; 수치 기반 데이터 분류 작업에서 성능이 우수 &amp;bull; No lose of information&lt;/td&gt;
&lt;td id=&quot;d\mH&quot;&gt;&amp;bull; Sensitive to noise &amp;bull; If training data is imbalanced, major class may dominate &amp;bull; Have to keep all data &amp;rarr; Memory space &amp;bull; Affected by local structure of training data &amp;bull; Need to calculate the distance from all training data &amp;rarr; Time &amp;bull; Calaulating distance in high dimensional space is expensive &amp;bull; In high dimensional space, nearest neighbours are not near (Curse of dimensionality)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;cf.) Clustering&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;거리기반으로 분류&lt;/li&gt;
&lt;li&gt;비지도학습(Unsupervised Learning)&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>IT/대학원</category>
      <author>data고수</author>
      <guid isPermaLink="true">https://bioplusbigdata.tistory.com/54</guid>
      <comments>https://bioplusbigdata.tistory.com/54#entry54comment</comments>
      <pubDate>Wed, 14 Jun 2023 16:09:16 +0900</pubDate>
    </item>
    <item>
      <title>[기계학습][4주차] Model Analysis</title>
      <link>https://bioplusbigdata.tistory.com/53</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;나란 사람... 3월 첫주의 학구열은 이미 사라진지 오래..... 한달만에...&amp;nbsp; 제대로 공부해보자 생각을 하여 (벚꽃=중간고사=700만원) 강의 정리를 하고자 한다... 화이티위잉ㅜ&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;lt;4주차 강의&amp;gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Overfitting vs Generalization&lt;/li&gt;
&lt;li&gt;Model Evaluation&lt;/li&gt;
&lt;li&gt;Training Set &amp;amp; Test Set&lt;/li&gt;
&lt;li&gt;Cross Validation&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Overfitting vs Generation&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Of which order polynomial will be best for the data?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 몇 차원의 함수를 가정하면 fit한 모델을 찾을 수 있는가?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1819&quot; data-origin-height=&quot;456&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cUhsc3/btr6OUM0Vcd/qTi4gdI3tZ8zq2PBOlcRDK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cUhsc3/btr6OUM0Vcd/qTi4gdI3tZ8zq2PBOlcRDK/img.png&quot; data-alt=&quot;그림 1. 차원에 따른 모델 변화&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cUhsc3/btr6OUM0Vcd/qTi4gdI3tZ8zq2PBOlcRDK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcUhsc3%2Fbtr6OUM0Vcd%2FqTi4gdI3tZ8zq2PBOlcRDK%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;1819&quot; height=&quot;456&quot; data-origin-width=&quot;1819&quot; data-origin-height=&quot;456&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;그림 1. 차원에 따른 모델 변화&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 그림들을 볼 때, 주어진 데이터들과 가장 FIT 한 모델은 9차원&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러나, TEST 데이터를 사용하여 예측 값을 확인할 땐, 9차원에서 가장 큰 ERROR가 생성될 수 있음&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(As the complexity of model increases)-&amp;gt; The prediction accuracy does not necessarily increase&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;b&gt;기계학습의 목적을 생각할 때, &lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) FIT한 데이터 (Learning the given data as exactly as possible), error가 적은 모델 -&amp;gt; 대부분 동의 X&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) Unknown data예측 하는 것 (Predict the unknown data as exactly as possible based on the given data)&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;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Which model is best?&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-You may try several approaches and need to choose one -&amp;gt; 우리가 직접 비교해서 좋은 모델을 찾아야함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-You may try several different parameters of a model and need to choose one&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;Model Evaluations&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-Based on training &amp;amp; Testing data set&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-Cross-validation&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;size18&quot;&gt;&lt;b&gt;*Overfitting&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;;모델이 실제 분포보다 학습 (Training) 샘플 분포에 더 근접하게 되는 현상&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;ex) 시험을 준비하는 학생&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;학생 1. 성실하게 작년도 기출문제도 공부하는 학생(just 암기)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;학생 2. 왜 이런 상황이 도출되었는지 이해하며 공부하는 학생&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 시험을 보게 된다면 2번이 성적을 더 잘 받을 수 있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 대안: 데이터 양을 많이 늘려 정규화 (Generalization), 교차 검증(Cross validation)&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;b&gt;*Underfitting&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: 모델이 너무 간단하여 학습 오류가 줄어들지 않는 현상&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;성능평가&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;1) Holdout&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;조건) 데이터 별로 독립적이어야 함 (Training set and test set should not overlap each other)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;=&amp;gt; 모델의 generality 를 보는 것&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;가장 기본적인 모델 검증 방법&lt;/li&gt;
&lt;li&gt;Size of test set: 50~30% of given data (보통)&lt;/li&gt;
&lt;li&gt;Adavantage:Simple &amp;amp; easy&lt;/li&gt;
&lt;li&gt;Disadvantage: Test set is not used for modeling building, -&amp;gt; Waste of data (모델 구축하는데 test set은 사용되지 않아 waste됨) , data is randomly split이라 평과 결과를 신뢰하기 힘듦 -&amp;gt; 나눠지는 거에 따라 성능이 굉장이 달라짐&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;2) Cross-validation, 교차검증, CV&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주로 5-fold, 10-fold 사용 Usually, k-fold cross validation is widely used in order to reduce statistical variance&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;b&gt;장점&lt;/b&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;/li&gt;
&lt;li&gt;&amp;nbsp;정확도 향상, 데이터 부족으로 인한 underfitting을 방지&lt;/li&gt;
&lt;li&gt;모든 데이터셋을 평가에 활용할 수 있음&lt;/li&gt;
&lt;li&gt;평가에 사용되는 데이터 편중을 막을 수 있음&lt;/li&gt;
&lt;li&gt;평가 결과에 따라 좀 더 일반화된 모델을 만들 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;단점&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Iteration 횟수가 많기 때문에, 모델 훈련/평가 시간이 오래 걸림&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;2-1) K-fold cross validation (k-겹 교차 검증)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;똑같은 크기에 fold 단위로 split&lt;/li&gt;
&lt;li&gt;k-1 training set and 1 test set with k fold&amp;nbsp;&lt;/li&gt;
&lt;li&gt;보통 회귀 모델에 사용되며, 데이터가 독립적이고 동일한 분포를 가진 경우 사용&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Sklearn에선 cross_val_score 함수를 제공 (cv로 fold 수 조정)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;3) LOOCV(Leave-one-out cross validation)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;K-fold 교차 검증의 극단적인 형태, 학습 데이터셋이 극도로 작을 때 사용할 수 있는 교차 검증 방법&lt;/li&gt;
&lt;li&gt;오직 한개의 인스턴스만을 검증 데이터셋으로 남겨 놓음&amp;nbsp;&lt;/li&gt;
&lt;li&gt;학습데이터 손실을 최소화 할 수 있지만, 샘플 데이터 수가 1000개 -&amp;gt; 1000번 학습과 검증 진행&amp;nbsp;&lt;/li&gt;
&lt;/ul&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;&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;p data-ke-size=&quot;size16&quot;&gt;참고) &lt;a href=&quot;https://wooono.tistory.com/105&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://wooono.tistory.com/105&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1680103005237&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[ML] 교차검증 (CV, Cross Validation) 이란?&quot; data-og-description=&quot;교차 검증이란? 보통은 train set 으로 모델을 훈련, test set으로 모델을 검증한다. 여기에는 한 가지 약점이 존재한다. 고정된 test set을 통해 모델의 성능을 검증하고 수정하는 과정을 반복하면, 결&quot; data-og-host=&quot;wooono.tistory.com&quot; data-og-source-url=&quot;https://wooono.tistory.com/105&quot; data-og-url=&quot;https://wooono.tistory.com/105&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bBBe6x/hyR5z3MN57/YMxZiwDhVjkomGWvtElJ6K/img.png?width=800&amp;amp;height=69&amp;amp;face=0_0_800_69,https://scrap.kakaocdn.net/dn/h4VNn/hyR5qeDXbZ/WqPNAtz0TemrVUlHNYdP81/img.png?width=800&amp;amp;height=69&amp;amp;face=0_0_800_69,https://scrap.kakaocdn.net/dn/b1uADc/hyR6JKqNxg/QbmAbeHn8tm0cgHZRvjMX1/img.png?width=1806&amp;amp;height=1264&amp;amp;face=0_0_1806_1264&quot;&gt;&lt;a href=&quot;https://wooono.tistory.com/105&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://wooono.tistory.com/105&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bBBe6x/hyR5z3MN57/YMxZiwDhVjkomGWvtElJ6K/img.png?width=800&amp;amp;height=69&amp;amp;face=0_0_800_69,https://scrap.kakaocdn.net/dn/h4VNn/hyR5qeDXbZ/WqPNAtz0TemrVUlHNYdP81/img.png?width=800&amp;amp;height=69&amp;amp;face=0_0_800_69,https://scrap.kakaocdn.net/dn/b1uADc/hyR6JKqNxg/QbmAbeHn8tm0cgHZRvjMX1/img.png?width=1806&amp;amp;height=1264&amp;amp;face=0_0_1806_1264');&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;[ML] 교차검증 (CV, Cross Validation) 이란?&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;교차 검증이란? 보통은 train set 으로 모델을 훈련, test set으로 모델을 검증한다. 여기에는 한 가지 약점이 존재한다. 고정된 test set을 통해 모델의 성능을 검증하고 수정하는 과정을 반복하면, 결&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;wooono.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://yngie-c.github.io/machine%20learning/2020/05/01/val_eval/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://yngie-c.github.io/machine%20learning/2020/05/01/val_eval/&lt;/a&gt;&lt;/p&gt;</description>
      <category>IT/대학원</category>
      <author>data고수</author>
      <guid isPermaLink="true">https://bioplusbigdata.tistory.com/53</guid>
      <comments>https://bioplusbigdata.tistory.com/53#entry53comment</comments>
      <pubDate>Thu, 30 Mar 2023 00:17:14 +0900</pubDate>
    </item>
    <item>
      <title>[Kubernetes] CKA Certification 취득 후기 및 TIP</title>
      <link>https://bioplusbigdata.tistory.com/52</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;필자는 올해 목표인 CKA 자격증 취득을 성공하였다~~~ 예헤이&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인생에서 이렇게 오래 공부를 한 적이 없었는데... ㅎㅎ&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1090&quot; data-origin-height=&quot;854&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pp1ck/btrZAfwiAKK/44UCsIgjKt0WBgMuMHwMJ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pp1ck/btrZAfwiAKK/44UCsIgjKt0WBgMuMHwMJ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pp1ck/btrZAfwiAKK/44UCsIgjKt0WBgMuMHwMJ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fpp1ck%2FbtrZAfwiAKK%2F44UCsIgjKt0WBgMuMHwMJ1%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;630&quot; height=&quot;494&quot; data-origin-width=&quot;1090&quot; data-origin-height=&quot;854&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;자격증 소개)&lt;/b&gt;&lt;/h4&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-이름: Certified Kubernetes Administrator (CKA)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-On-premise 환경에서 cloud 환경으로 많이 전환되고 있듯이 기존 인프라 운영 관리 부분에 있어 컨테이너 환경의 인프라를 도입&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-Linux Foundation 산하의 Cloud Native Computing Foundation (CNCF) 주관 컨테이너 관리 도구인 쿠버네티스 클러스터의 관리 능력 검증 목적&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Hands-on Practical lab 형식의 온라인 원격 시험&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-시험시간: 2시간 (매우 짧음ㅜ)&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-시험문제: 17문제&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-시험기회: 2번 (Retake 기간 별도 존재 x)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-시험비용: $375&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* 구글에 CKA discount coupon 검색 -&amp;gt; 할인 가장 많이 적용되는 쿠폰 사용 (할인 쿠폰 사용 안하고 시험 치면 바보 ㅜ )&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;공부 방법)&lt;/b&gt;&lt;/h4&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #35373a;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://www.udemy.com/course/certified-kubernetes-administrator-with-practice-tests/&quot;&gt;Mumshad Mannambeth의 Certified Kubernetes Administrator (CKA) with Practice Tests&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;수학의 정석과 같이 뭄샤드 형님의 강의가 CKA 자격증을 취득하려면 필수 강의라 해서 들었다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;*시크릿 모드로 여러 번 들어가면 15,000~ 19,000원까지 강의를 구매할 수 있다. (필자는 귀찮아서 19,000원에 들었다)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-Kodekloud라는 CKA test 환경을 제공&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;강의를 월-금, 5번 총 5주로 나눠 들었다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음엔 필자는 당연히 아무것도 모르니 강의 듣고 정리하는데 4-5시간 소요되었다.....&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;근데, 듣고 4-5주차 쯤 되면 이해가 점차 되었다.&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;공부 순서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1~4주간&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1차: 뭄샤드 형님 강의 영어 해석 | 2차: 해석한 글 정리 및 이해 | 3차: 해당 강의 관련 블로그 글 참조 | 4차: 블로그에 글 작성&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;5주 째&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;복습 및 Documentation 읽어보기 및 mock exam 반복&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;막상 많은 내용을 다뤘는데 개념이 제대로 안잡힌 거 같아 이해하기 위해 다시 복습&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;Just 암기보다 왜 이 코드를 사용하는지, &lt;b&gt;개념&lt;/b&gt;을 이해하는게 가장 중요&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;시험 TIP)&lt;/b&gt;&lt;/h4&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;메모장:&lt;/b&gt; 분명 블로그엔 메모장이 있다고 했지만 찾지 못했다...&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Documentation을 긁어 수정을 하기 위해 메모장 대체로 사용할 부분을 찾고 있었는데...! 바로, Documentation 말고 다른 탭에 있는 translate 부분!! 아래 사진과 같이 코드 복사한 거 넣고 수정해서 다시 복사해서 붙여넣기 했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다른 분들은 꼭 메모장 찾길 바라요...ㅎ 급하게 못찾겠다, 당황스럽다 하시는 분은 저와 같이 하셔도 괜찮아요ㅎㅎ&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;737&quot; data-origin-height=&quot;376&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bE6MNP/btrY1nKjtal/iNP4DNqkzeIDcsCZBQC1z1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bE6MNP/btrY1nKjtal/iNP4DNqkzeIDcsCZBQC1z1/img.png&quot; data-alt=&quot;메모장 대신 사용...&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bE6MNP/btrY1nKjtal/iNP4DNqkzeIDcsCZBQC1z1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbE6MNP%2FbtrY1nKjtal%2FiNP4DNqkzeIDcsCZBQC1z1%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;629&quot; height=&quot;321&quot; data-origin-width=&quot;737&quot; data-origin-height=&quot;376&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;메모장 대신 사용...&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #35373a;&quot;&gt;&lt;b&gt;단축키&lt;/b&gt;: 단축키를 눌리기엔 눌려야하는 키들이 많아 귀찮기도 하고 복잡해서,&amp;nbsp; 마우스 '&lt;u&gt;오른쪽 클릭'&lt;/u&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #35373a;&quot;&gt;시험용 VM의 터미널에서 복사/붙여넣기 단축키는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;Ctrl+SHIFT+C&lt;span style=&quot;background-color: #ffffff; color: #35373a;&quot;&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;Ctrl+SHIFT+V&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;시험환경&lt;/b&gt;: 여권&amp;nbsp;&lt;/h4&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;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;시험장소&lt;/b&gt;: 집&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;집에서 시험 쳤는데, 책상 위 아래 아무 것도 없어야 하며, 귀에 전자기기 있는지, 마우스 들어봐라 등 검사를 철저히 한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;*라벨이 없는 물 컵? 을 들고와서 마시면서 시험 쳐도 된다고 여러번 물어보는데 필자는 no thanks 라 대답했다.(물 마실 시간 없었다 떨려서 ㅜ)&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;마지막으로:&lt;/b&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;</description>
      <category>IT/Kubernetes</category>
      <category>CKA</category>
      <category>DevOps</category>
      <category>Kubernetes</category>
      <category>쿠버네티스</category>
      <author>data고수</author>
      <guid isPermaLink="true">https://bioplusbigdata.tistory.com/52</guid>
      <comments>https://bioplusbigdata.tistory.com/52#entry52comment</comments>
      <pubDate>Thu, 16 Feb 2023 14:26:27 +0900</pubDate>
    </item>
  </channel>
</rss>