<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>My Data Story</title>
    <link>https://lets-start-data.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Thu, 9 Apr 2026 11:57:55 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>Hwasss</managingEditor>
    <item>
      <title>[군집] 활용 - 이상치 탐지, 특이치 탐지</title>
      <link>https://lets-start-data.tistory.com/entry/9%EC%9E%A5-%EB%B9%84%EC%A7%80%EB%8F%84-%ED%95%99%EC%8A%B5-%EA%B5%B0%EC%A7%91-%ED%99%9C%EC%9A%A9-%EC%9D%B4%EC%83%81%EC%B9%98-%ED%83%90%EC%A7%80-%ED%8A%B9%EC%9D%B4%EC%B9%98-%ED%83%90%EC%A7%80</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;◈&amp;nbsp;&lt;/span&gt;&amp;nbsp;'군집 활용' 목차&amp;nbsp;&lt;span style=&quot;color: #000000;&quot;&gt;◈&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/9%EC%9E%A5-%EB%B9%84%EC%A7%80%EB%8F%84-%ED%95%99%EC%8A%B5-44-%EA%B5%B0%EC%A7%91&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;1. 개요&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-%ED%99%9C%EC%9A%A9-%EC%9D%B4%EB%AF%B8%EC%A7%80-%EB%B6%84%ED%95%A0-%EC%A0%84%EC%B2%98%EB%A6%AC-%EC%A4%80%EC%A7%80%EB%8F%84-%ED%95%99%EC%8A%B5&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;2. 이미지 분할, 전처리, 준지도 학습&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;3. 이상치 탐지, 특이치 탐지&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;사이킷런에서 이상치 탐지와 특이치 탐지 전용으로 사용할 수 있는 가지 알고리즘을 살펴보자.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;사이킷런에는 이상치 탐지와 특이치 탐지 전용으로 사용할 수 있는 몇 가지 알고리즘이 구현되어 있다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 알고리즘들은 임의의 모양을 가진 클러스터를 다룰 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;1. PCA&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;보통 샘플의 재구성 오차와 이상치의 재구성 오차를 비교하면 일반적으로 후자가 훨씬 크다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이는 간단하고 종종 매우 효과적인 이상치 탐지 기법이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;PCA 외에도 inverse_transform() 메서드를 가진 다른 차원 축소 기법도 동일한 방법으로 이상치 탐지한다.&amp;nbsp;&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;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;2. Fast-MCD(Minimum Covariance Determinant)&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;EllipticEnvelope 클래스에 구현된 이 알고리즘은 이상치 감지에 유용하다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;특히 &lt;u&gt;데이터 셋을 정제할 때 유용&lt;/u&gt;하다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;보통 샘플(정성치)가 혼합된 것이 아니라 하나의 가우시안 분포에서 생성되었다고 가정한다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;또한 이 가우시안 분포에서 생성되지 않은 이상치로 이 데이터 셋이 오염되었다고 가정한다.&amp;nbsp;&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;알고리즘이 가우시안 분포의 파라미터를 추정할 때 (즉 정상치를 둘러싼 타원 도출할 때), 이상치로 의심되는 샘플을 무시한다.&lt;/u&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이런 기법은 알고리즘이 타원형을 잘 추정하고 이상치를 잘 구분하도록 돕는다.&amp;nbsp;&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;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;3. 아이솔레이션 포레스트&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;특히 고차원 데이터셋에서 이상치 감지를 위한 효율적인 알고리즘이다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;각 노드에서 특성을 랜덤하게 선택한 다음 (최솟값과 최댓값 사이에서) 랜덤한 임계값을 골라 데이터 셋을 둘로 나눈다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이런 식으로 데이터 셋이 점차 분리되어 &lt;u&gt;모든 샘플이 다른 샘플과 격리될 때까지 진행된다.&lt;/u&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;이상치는 일반적으로 다른 샘플과 멀리 떨어져 있으므로 모든 결정 트리에 걸쳐&amp;nbsp; 평균적으로 정상 샘플과 적은 단계에서 분리된다.&lt;/u&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;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;4. LOF (Local Outlier Factor) &lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 알고리즘은 이상치 탐지에 좋다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;주어진 샘플 주위의 밀도와 이웃 주위의 밀도를 비교한다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이상치는 종종 k개의 최근접 이웃보다 더 격리된다.&amp;nbsp;&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;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;5. one-class SVM&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;커널 SVM 분류기가 두 클래스를 분리하는 방법을 생각해보면&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;모든 샘플을 고차원 공간에 매핍한 다음 이 고차원 공간에서 선형 SVM 분류기를 사용해 두 클래스를 분리한다. &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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;여기서는 샘플의 클래스가 하나이기 때문에 one-class SVM 알고리즘이 원본 공간으로부터 고차원 공간에 있는 샘플을 분리한다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;원본 공간에서는 모든 샘플을 둘러싼 작은 영역을 찾는 것에 해당한다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;새로운 샘플이 이 영역 안에 놓이지 않는다면 이는 이상치라고 간주한다.&amp;nbsp;&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;조정할 하이퍼파라미터가 적다. 커널 SVM 을 위한 하이퍼파라미터 하나와 마진 하이퍼파라미터가 있다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 알고리즘은 특히 고차원 데이터셋에 잘 작동한다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;하지만 모든 SVM과 마찬가지로 대규모 데이터 셋으로 확장은 어렵다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>Machine Learning/3. 비지도 학습 알고리즘</category>
      <category>Fast MCD</category>
      <category>Local Outlier Factor</category>
      <category>LOF</category>
      <category>one-class SVM</category>
      <category>pca</category>
      <category>아이솔레이션 포레스트</category>
      <author>Hwasss</author>
      <guid isPermaLink="true">https://lets-start-data.tistory.com/28</guid>
      <comments>https://lets-start-data.tistory.com/entry/9%EC%9E%A5-%EB%B9%84%EC%A7%80%EB%8F%84-%ED%95%99%EC%8A%B5-%EA%B5%B0%EC%A7%91-%ED%99%9C%EC%9A%A9-%EC%9D%B4%EC%83%81%EC%B9%98-%ED%83%90%EC%A7%80-%ED%8A%B9%EC%9D%B4%EC%B9%98-%ED%83%90%EC%A7%80#entry28comment</comments>
      <pubDate>Sat, 19 Aug 2023 00:56:00 +0900</pubDate>
    </item>
    <item>
      <title>[군집] 활용 - 이미지 분할, 전처리, 준지도 학습</title>
      <link>https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-%ED%99%9C%EC%9A%A9-%EC%9D%B4%EB%AF%B8%EC%A7%80-%EB%B6%84%ED%95%A0-%EC%A0%84%EC%B2%98%EB%A6%AC-%EC%A4%80%EC%A7%80%EB%8F%84-%ED%95%99%EC%8A%B5</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;◈&amp;nbsp;&lt;/span&gt;&amp;nbsp;'군집 활용' 목차&amp;nbsp;&lt;span style=&quot;color: #000000;&quot;&gt;◈&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/9%EC%9E%A5-%EB%B9%84%EC%A7%80%EB%8F%84-%ED%95%99%EC%8A%B5-44-%EA%B5%B0%EC%A7%91&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;1. 개요&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;2. 이미지 분할, 전처리, 준지도 학습&lt;/span&gt;&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 Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;nbsp; &amp;nbsp; 사이킷런에서 군집을 활용해 이미지 분할, 데이터 전처리, 준지도 학습에 활용하는 방법에 대해 알아보자.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/9%EC%9E%A5-%EB%B9%84%EC%A7%80%EB%8F%84-%ED%95%99%EC%8A%B5-%EA%B5%B0%EC%A7%91-%ED%99%9C%EC%9A%A9-%EC%9D%B4%EC%83%81%EC%B9%98-%ED%83%90%EC%A7%80-%ED%8A%B9%EC%9D%B4%EC%B9%98-%ED%83%90%EC%A7%80&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;3. 이상치 탐지, 특이치 탐지&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;1. 군집을 사용한 이미지 분할&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이미지 분할은 이미지를 세그먼트 여러 개로 분할하는 작업이다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;시맨틱 분할에서는 동일한 종류의 물체에 속한 모든 픽셀은 같은 세그먼트에 할당한다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예를 들어 자율 주행 자동차의 비전 시스템에서 보행자 이미지를 구성하는 모든 픽셀을 '보행자' 세그먼트에 할당될 것이다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 경우 각 보행자는 다른 세그먼트가 될 수 있다.&amp;nbsp;&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;여기서는 훨씬 쉬운 작업인&amp;nbsp;&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;pre id=&quot;code_1628866441311&quot; class=&quot;python&quot; style=&quot;margin: 20px auto 0px; display: block; overflow: auto; padding: 20px; color: #383a42; background: #f8f8f8; font-size: 14px; font-family: 'SF Mono', Menlo, Consolas, Monaco, monospace; border: 1px solid #ebebeb; line-height: 1.71; cursor: default; z-index: 1; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from matplotlib.image import imread

image = imread(os.path.join('images', 'unsupervised_learning', 'ladybug.png'))
print(image.shape) #(533, 800, 3)

X = image.reshape(-1,3)
kmeans = KMneas(n_clusters=8).fit(X)
segmented_img = kmeans.cluster_centers_[kmeans.labels]
segmented_img =&lt;/code&gt;&lt;/pre&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;2. 군집을 사용한 전처리&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;군집은 차원 축소에 효과적이다. 특히&amp;nbsp;&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;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;숫자 이미지를 분류하는 모델을 만들기 전에, GridSearch를 통해 적절한 k개 선정하고, 군집을 활용해 각 특성을 k개의 클러스터까지의 거리로 바꾸는 전처리를 진행한 후 모델 훈련을 진행한다.&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;적절한 k개 선정할 때 실루엣 분석하거나 이너셔의 감소를 확인할 필요 없다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;적절한 k값은 교차 검증에서 가장 좋은 분류 성능을 내는 값이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1628866441313&quot; class=&quot;python&quot; style=&quot;margin: 20px auto 0px; display: block; overflow: auto; padding: 20px; color: #383a42; background: #f8f8f8; font-size: 14px; font-family: 'SF Mono', Menlo, Consolas, Monaco, monospace; border: 1px solid #ebebeb; line-height: 1.71; cursor: default; z-index: 1; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split
from sklearn.model_selection import GridSearchCV
from sklearn.pipeline import Pipeline
from sklearn.cluster import KMeans
from sklearn.linear_model import LogisticRegression

X_digits, y_digits = load_digits(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X_digits, y_digits)

param_grid = dict(kmeans_n_cluster=range(2,100))

pipeline = Pipeline([
      ('kmeans', Kmeans(n_clusters=50)),
      ('log_reg', LogisticRegression())
  ])

grid_clf = GridSearchCV(pipeline, param_grid, cv=3, verbose=2)
grid_clf.fit(X_train, y_train)

print(grid_clf.best_params_)
print(grid_clf.score(X_test, y_test))&lt;/code&gt;&lt;/pre&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;3. 군집을 사용한 준지도 학습&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;레이블이 없는 데이터가 많고 레이블이 있는 데이터가 적을 때 군집을 활용해 준지도 학습을 적용한다.&amp;nbsp;&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;숫자 데이터 셋에서 1~50 까지만 레이블 존재하는 상황에서 준지도 학습을 통해 모델 훈련시켜보자.&amp;nbsp;&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;step1&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;모든 훈련 세트를 50개의 클러스터로 모은다. (클러스터 갯수 = 레이블 개수)&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;step2&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;각 클러스터에서 센트로이드에 가장 가까운 이미지를 찾는다. 이런 이미지를 대표 이미지라 부른다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1628866441314&quot; class=&quot;python&quot; style=&quot;margin: 20px auto 0px; display: block; overflow: auto; padding: 20px; color: #383a42; background: #f8f8f8; font-size: 14px; font-family: 'SF Mono', Menlo, Consolas, Monaco, monospace; border: 1px solid #ebebeb; line-height: 1.71; cursor: default; z-index: 1; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;k=50
kmeans = KMeans(n_cluster=50)
X_digit_dist = kmeans.fit_transform(X_train)
representative_digit_idx = np.argmin(X_digit_dist, axis=0)
X_representative_digits = X_train[representative_digit_idx]&lt;/code&gt;&lt;/pre&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;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;step3&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;전문가가&lt;/b&gt;&amp;nbsp;&lt;b&gt;직접&lt;/b&gt; 이미지를 보고 수동으로 레이블을 할당한다. &lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; letter-spacing: 0px;&quot;&gt;하지만 전문가가 수동으로 레이블을 할당하는 일은 비용이 많이 들므로 무작위 샘플 대신&lt;/span&gt;&lt;b&gt;&amp;nbsp;대표 이미지에 대해서만 레이블을 할당하는 것도 좋다.&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1628866441315&quot; class=&quot;python&quot; style=&quot;margin: 20px auto 0px; display: block; overflow: auto; padding: 20px; color: #383a42; background: #f8f8f8; font-size: 14px; font-family: 'SF Mono', Menlo, Consolas, Monaco, monospace; border: 1px solid #ebebeb; line-height: 1.71; cursor: default; z-index: 1; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;y_representative_digits = np.array([4,8,0,6,8,3 ... ,7,6,2,3,1,1])&lt;/code&gt;&lt;/pre&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;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;step4&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이제 이 레이블(대표 이미지에 대해 전문가가 직접 할당한 레이블)을 동일한 클러스터에 있는 모든 샘플에 전파한다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1628866441315&quot; class=&quot;python&quot; style=&quot;margin: 20px auto 0px; display: block; overflow: auto; padding: 20px; color: #383a42; background: #f8f8f8; font-size: 14px; font-family: 'SF Mono', Menlo, Consolas, Monaco, monospace; border: 1px solid #ebebeb; line-height: 1.71; cursor: default; z-index: 1; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;y_train_propageted = np.empty(len(X_train), dtype=np.int32)

for i in range(k) : 
   #각 클러스터의 대표 이미지에 할당된 레이블을 같은 클러스터 내 샘플에도 레이블로 전파
   y_train_progaeted[kmeans.labels_ == i] = y_representative_digits[i]&lt;/code&gt;&lt;/pre&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;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;step5&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;모델을 훈련하고 성능을 확인해본다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1628866441315&quot; class=&quot;python&quot; style=&quot;margin: 20px auto 0px; display: block; overflow: auto; padding: 20px; color: #383a42; background: #f8f8f8; font-size: 14px; font-family: 'SF Mono', Menlo, Consolas, Monaco, monospace; border: 1px solid #ebebeb; line-height: 1.71; cursor: default; z-index: 1; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;log_reg = LogisticRegression()
log_reg.fit(X_train, y_train_propagated)
print(log_reg.score(X_test, y_test))&lt;/code&gt;&lt;/pre&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;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;step6&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;동일한 클러스터의 모든 샘플에 전파했기에, 클러스터 경계에 가깝게 위치한 샘플이 포함된 경우 잘못된 레이블을 부여했을 수도 있다. 이를 방지하기 위해 센트로이와 가까운 샘플 20%만 레이블을 전파할 수도 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1628866441316&quot; class=&quot;python&quot; style=&quot;margin: 20px auto 0px; display: block; overflow: auto; padding: 20px; color: #383a42; background: #f8f8f8; font-size: 14px; font-family: 'SF Mono', Menlo, Consolas, Monaco, monospace; border: 1px solid #ebebeb; line-height: 1.71; cursor: default; z-index: 1; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;percenetile_closest = 20
X_clust_dist = X_digit_dist[np.arrange(len(X_train)), kmeans.labels_]
y_train_propageted = np.empty(len(X_train), dtype=np.int32)

for i in range(k) : 
   #특정 클러스터에 속하는 샘플만 추출하여, 센트로이드에서 가장 가까운 20% 위치 거리를 찾는다.
   in_cluster = (kmeans_labels==i)
   cluster_dist = X_cluster_dist[in_cluster]
 
   cutoff_distance = np.percentile(cluster_dist, percentile_closest)
   above_cutoff = (X_clust_dist &amp;gt; cutoff_distance)
   X_clust_dist[in_cluster &amp;amp; above_cutoff] = -1
   

partially_propagated = (X_cluster_dist!=-1)

X_train_partially_propagated = X_cluster_dist[partially_propagated]
y_train_partially_propagated = y_train_propagated[partially_propagated]&lt;/code&gt;&lt;/pre&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;u&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;i&gt;cf. 능동 학습&lt;/i&gt;&lt;/span&gt;&lt;/u&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;모델과 훈련 세트를 지속적으로 향상하기 위해 다음 단계로 능동 학습을 몇 번 반복할 수 있다. 이 방법은 전문가가 학습 알고리즘과 상호작용하여 알고리즘이 요청할 때 특정 샘플의 레이블을 제공해야 한다.&amp;nbsp; 능동 학습의 전략 중&amp;nbsp;&lt;b&gt;불확실성 샘플링&lt;/b&gt;이 가장 많이 사용된다.&amp;nbsp;&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;■ 전략1&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;모델이 가장 불확실하게 예측하는 샘플(추정 확률 낮은 샘플)을 전문가가 레이블을 제공한다.&amp;nbsp;&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span&gt;■&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;전략2&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;모델을 가장 크게 바꾸는 샘플이나 모델의 검증 점수를 가장 크게 떨어뜨리는 샘플 또는 여러 알고리즘의 모델이 동일한 예측을 내지 않는 샘플에 대해 전문가가 레이블을 제공한다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Machine Learning/3. 비지도 학습 알고리즘</category>
      <category>Cluster</category>
      <category>능동 학습</category>
      <category>데이터 전처리</category>
      <category>이미지분할</category>
      <category>준지도 학습</category>
      <author>Hwasss</author>
      <guid isPermaLink="true">https://lets-start-data.tistory.com/60</guid>
      <comments>https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-%ED%99%9C%EC%9A%A9-%EC%9D%B4%EB%AF%B8%EC%A7%80-%EB%B6%84%ED%95%A0-%EC%A0%84%EC%B2%98%EB%A6%AC-%EC%A4%80%EC%A7%80%EB%8F%84-%ED%95%99%EC%8A%B5#entry60comment</comments>
      <pubDate>Sat, 19 Aug 2023 00:55:50 +0900</pubDate>
    </item>
    <item>
      <title>[군집] 활용 - 개요</title>
      <link>https://lets-start-data.tistory.com/entry/9%EC%9E%A5-%EB%B9%84%EC%A7%80%EB%8F%84-%ED%95%99%EC%8A%B5-44-%EA%B5%B0%EC%A7%91</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;◈&amp;nbsp;&lt;/span&gt; '군집 활용' 목차&amp;nbsp;&lt;span style=&quot;color: #000000;&quot;&gt;◈&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;1. 개요&lt;/span&gt;&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 Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;비지도 학습 중 군집의 다양한 활용에 대해 간략히 소개하겠다.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-%ED%99%9C%EC%9A%A9-%EC%9D%B4%EB%AF%B8%EC%A7%80-%EB%B6%84%ED%95%A0-%EC%A0%84%EC%B2%98%EB%A6%AC-%EC%A4%80%EC%A7%80%EB%8F%84-%ED%95%99%EC%8A%B5&quot; rel=&quot;noopener&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;2. 이미지 분할, 전처리, 준지도 학습&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/9%EC%9E%A5-%EB%B9%84%EC%A7%80%EB%8F%84-%ED%95%99%EC%8A%B5-%EA%B5%B0%EC%A7%91-%ED%99%9C%EC%9A%A9-%EC%9D%B4%EC%83%81%EC%B9%98-%ED%83%90%EC%A7%80-%ED%8A%B9%EC%9D%B4%EC%B9%98-%ED%83%90%EC%A7%80&quot; rel=&quot;noopener&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;3. 이상치 탐지, 특이치 탐지&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;컴퓨터 과학자 얀 르쿤이 한 말이 유명하다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&quot;지능이 케이크라면 비지도 학습은 케이크의 빵이고, 지도 학습은 케이크 위의 크림이고, 강화 학습은 케이크위의 체리입니다.&quot; &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다른 말로 하면 이제 겨우 발을 담그기 시작한 비지도 학습에 큰 잠재력이 있다는 뜻이다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;1. 군집 활용&amp;nbsp;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;비슷한 샘플을 구별해 하나의 클러스터 또는 비슷한 샘플의 그룹으로 할당하는 것이다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이때 군집은 분류와 다르게 레이블이 없는 비지도 학습이다.&amp;nbsp;&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;&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;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;고객 분류&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;동일한 클러스터 내의 사용자가 좋아하는 컨텐츠를 추천하는 추천 시스템&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;데이터 분석&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;새로운 데이터 셋을 분석할 때 군집 알고리즘을 실행하고, 각 클러스터 별 분석하면 좋다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;차원 축소 기법&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;한 데이터 셋에 군집 알고리즘을 적용하면 각 클러스터에 대한 샘플의 친화성 측정 가능하다. &lt;br /&gt;각 샘플의 특성 벡터 X를 각 클러스터에 대한 친화성 벡터로 바꿀 수 있다. &lt;br /&gt;다시 말해, k 개의 클러스터가 있다면 이 벡터는 k차원이 된다.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;이상치 탐지&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;모든 클러스터에 친화성이 낮은 샘플은 이상치일 가능성이 높다. 또는 부정 거래 감지에 활용된다.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;준지도 학습&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;레이블된 샘플이 적다면 군집을 수행하고 동일한 클러스터에 있는 모든 샘플에 레이블을 전파할 수 있다. &lt;br /&gt;이 기법은 이어지는 지도 학습 알고리즘에 필요한 레이블이 크게 증가해 성능을 크게 향상 시킨다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;검색 엔진&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;일부 검색 엔진은 제시된 이미지와 비슷한 이미지를 찾아준다. &lt;br /&gt;데이터 베이스에 있는 모든 이미지에 군집 알고리즘을 적용해 비슷한 이미지는 동일한 클러스에 속하도록 한다. &lt;br /&gt;사용자가 찾으려는 이미지를 제공하면 훈련된 군집 모델을 사용해 이미지의 클러스터를 찾는다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;이미지 분할&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;색을 기반으로 픽셀을 클러스터로 모은다. 각 픽셀의 색을 해당 클러스터의 평균 색으로 바꾼다. &lt;br /&gt;이는 이미지에 있는 색상의 종류를 크게 줄인다. &lt;br /&gt;이렇게 하면 물체의 윤곽을 감지하기 쉬워져 물체 탐지 및 추적 시스템에 이미지 분할을 많이 활용한다.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;클러스터에 대한 보편적인 정의는 없다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;실제로 상황에 따라 다르며&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예를 들어, 어떤 알고리즘은 센트로이드라 부르는 특정 포인트를 중심으로 클러스터를 감지한다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;또 어떤 알고리즘은 샘플이 밀집되어 연속된 영역을 찾는다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Machine Learning/3. 비지도 학습 알고리즘</category>
      <author>Hwasss</author>
      <guid isPermaLink="true">https://lets-start-data.tistory.com/26</guid>
      <comments>https://lets-start-data.tistory.com/entry/9%EC%9E%A5-%EB%B9%84%EC%A7%80%EB%8F%84-%ED%95%99%EC%8A%B5-44-%EA%B5%B0%EC%A7%91#entry26comment</comments>
      <pubDate>Sat, 19 Aug 2023 00:55:41 +0900</pubDate>
    </item>
    <item>
      <title>[군집] 베이즈 가우시안 혼합 모델</title>
      <link>https://lets-start-data.tistory.com/entry/9%EC%9E%A5-%EB%B9%84%EC%A7%80%EB%8F%84-%ED%95%99%EC%8A%B5-%EA%B5%B0%EC%A7%91-%EB%B2%A0%EC%9D%B4%EC%A6%88-%EA%B0%80%EC%9A%B0%EC%8B%9C%EC%95%88-%ED%98%BC%ED%95%A9-%EB%AA%A8%EB%8D%B8</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;◈&amp;nbsp;&lt;/span&gt;&amp;nbsp;'군집' 목차&amp;nbsp;&lt;span style=&quot;color: #000000;&quot;&gt;◈&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/9%EC%9E%A5-%EB%B9%84%EC%A7%80%EB%8F%84-%ED%95%99%EC%8A%B5?category=882205&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;1. K-평균&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/9장-비지도-학습-24-DBSCAN-HDBSCAN&quot;&gt;2. DBSCAN&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-HDBSCAN&quot;&gt;3. HDBSCAN&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-%EB%B3%91%ED%95%A9%EA%B5%B0%EC%A7%91&quot;&gt;4. 병합군집&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-BIRCH-%EC%9C%A0%EC%82%AC%EB%8F%84-%EC%A0%84%ED%8C%8C-%EC%8A%A4%ED%8E%99%ED%8A%B8%EB%9F%BC-%EA%B5%B0%EC%A7%91&quot;&gt;5. 평균-이동&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-BIRCH&quot;&gt;6. BIRCH&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-%EC%9C%A0%EC%82%AC%EB%8F%84-%EC%A0%84%ED%8C%8C&quot;&gt;7. 유사도 전파&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-%EC%8A%A4%ED%8E%99%ED%8A%B8%EB%9F%BC-%EA%B5%B0%EC%A7%91&quot;&gt;8. 스펙트럼 군집&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/9%EC%9E%A5-%EB%B9%84%EC%A7%80%EB%8F%84-%ED%95%99%EC%8A%B5-34-%EA%B0%80%EC%9A%B0%EC%8B%9C%EC%95%88-%ED%98%BC%ED%95%A9&quot;&gt;9. 가우시안 혼합 모델&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;10. 베이즈 가우시안 혼합 모델&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; 베이즈 가우시안 혼합 모델에 대해 이해하고, 사이킷런에서 구현해보자.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;1. 베이즈 가우시안 혼합 모델&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;베이즈 가우시안 혼합 모델에서 클러스터의 파라미터(가중치, 평균, 공분산 행렬 등)는 더 이상 고정된 모델 파라미터가 아니고, 클러스터 할당 처럼 잠재 확률 변수로 취급된다. 따라서 이제 z는 클러스터 파라미터와 클러스터 할당을 모두 포함하게 된다.&amp;nbsp;&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;&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 alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2243&quot; data-origin-height=&quot;1000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FR3fz/btraGb6DiUr/5qAKk7YsGbj47uQ7u2wsS0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FR3fz/btraGb6DiUr/5qAKk7YsGbj47uQ7u2wsS0/img.png&quot; data-alt=&quot;&amp;amp;lt;베이즈 가우시안 혼합 모델&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FR3fz/btraGb6DiUr/5qAKk7YsGbj47uQ7u2wsS0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFR3fz%2FbtraGb6DiUr%2F5qAKk7YsGbj47uQ7u2wsS0%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;700&quot; height=&quot;312&quot; data-origin-width=&quot;2243&quot; data-origin-height=&quot;1000&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;베이즈 가우시안 혼합 모델&amp;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 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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;■&amp;nbsp; &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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;베타 분포는 고정된 범위 안에 놓인 값을 가진 확률 변수를 모델링할 때 자주 사용된다.&lt;span style=&quot;font-size: 0.87em; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 모델에서 클러스터 가중치는 모두 0에서 1사이의 범위이므로 베타 분포를 따른다고 가정한다.&lt;span style=&quot;font-size: 0.87em; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예를 들어 가중치 변수 = [0.3, 0.6, 0.5, ...] 라 가정하면, 샘플의 30%를 클러스터 0에 할당하고, 남은 샘플의 60%를 클러스터1에 할당하고, 남은 샘플의 50%를 클러스터 2에 할당되는 식이다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 프로세스는 새로운 샘플이 작은 클러스터보다 큰 클러스터에 합류할 가능성이 높은 데이터 셋에 잘 맞는 모델이다.&amp;nbsp;&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;■&amp;nbsp;&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;클러스터 가중치 분포는 농도 alpha 값에 따라 영향을 받는다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;농도 alpha 값이 크면, 가중치 값이 0에 가까워 SBP는 많은 클러스터를 만든다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;반대로 농도 alpha 값이 작으면, 가중치 값이 1에 가깝게 되고 SBP는 적은 클러스터를 만든다.&amp;nbsp;&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;■&amp;nbsp;&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;마지막으로 위샤트 분포를 사용해 공분산 행렬을 샘플링한다. 파라미터 d와 V로 클러스터 분포 모양을 제어한다.&amp;nbsp;&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;※ 베이즈 가우시안 혼합 모델로 무엇을 하는가?&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;위 가정을 전제로 데이터 셋 X가 주어지면,&amp;nbsp;가중치 ∮와 클러스터 할당 분포 z(1), ... , z(k) 그리고 전체 분포의 파라미터 m(1), ... , m(k) 와 &amp;sum;(1), ... , &amp;sum;(k) 까지를 추정한다.&amp;nbsp;다시 말해, 베이즈 가우시안 혼합 모델을 훈련시킨다는 것은 가중치와 전체 분포 파라미터를 추정하는 것이다.&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;※ 그렇다면, 어떻게 가중치과 전체 분포의 파라미터를 추정할까?&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;베이즈 가우시안 혼합 모델은 베이즈 정리를 활용하여 데이터 X를 관측한 후 잠재 변수에 대한 확률 분포를 업데이트한다.&amp;nbsp;&lt;/span&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 alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1934&quot; data-origin-height=&quot;321&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Qx7EO/btraPtECs8U/9TXUkoD56zvysk4kPOtMkK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Qx7EO/btraPtECs8U/9TXUkoD56zvysk4kPOtMkK/img.png&quot; data-alt=&quot;&amp;amp;lt;베이즈 정리&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Qx7EO/btraPtECs8U/9TXUkoD56zvysk4kPOtMkK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQx7EO%2FbtraPtECs8U%2F9TXUkoD56zvysk4kPOtMkK%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;650&quot; height=&quot;104&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1934&quot; data-origin-height=&quot;321&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;베이즈 정리&amp;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 data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;잠재 변수 z에 대한 사전 지식이 존재하는 경우, 사전 확률이라는 확률 분포 p(z)에 인코딩 될 수 있다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예를 들어 클러스터가 적을 것이라는 믿음은 농도 alpha 값을 높게 설정하게 된다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;안타깝지만 가우시안 혼합 모델에서 분모인 P(X)는 계산하기 힘들다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;그 이유는 가능한 모든 Z에 대해 적분해야 하기 때문이다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;모든 클러스터 파라미터와 클러스터 할당의 조합을 고려해야 하기 때문이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이는 변분 추론과 수학적 기교를 통해 해결한다.&amp;nbsp;&lt;/span&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 alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;4000&quot; data-origin-height=&quot;745&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Mhwrp/btraRle26VF/aqwlgeJpRnfTn6WVYbPTBk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Mhwrp/btraRle26VF/aqwlgeJpRnfTn6WVYbPTBk/img.png&quot; data-alt=&quot;&amp;amp;lt;P(X)는 구하기 어렵다.&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Mhwrp/btraRle26VF/aqwlgeJpRnfTn6WVYbPTBk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMhwrp%2FbtraRle26VF%2FaqwlgeJpRnfTn6WVYbPTBk%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;350&quot; height=&quot;65&quot; data-origin-width=&quot;4000&quot; data-origin-height=&quot;745&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;P(X)는 구하기 어렵다.&amp;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 data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;BayesianGaussianMixture 클래스에서 클러스터 파라미터와 할당 변수를 업데이트하는 공식에 대해 구체적으로 알고 싶다면 아래 사이트를 참고하길 바란다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;i&gt;( 참고) &lt;span style=&quot;font-size: 0.87em; letter-spacing: 0px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://homl.info/40&quot;&gt;http://homl.info/40&lt;/a&gt;&lt;/i&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;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;2.&amp;nbsp;BayesianGaussianMixture&amp;nbsp;클래스&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;사이킷런에서&amp;nbsp;BayesianGaussianMixture 클래스 통해&amp;nbsp;베이즈 가우시안 혼합 모델을 구현할 수 있다.&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;BayesianGaussianMixture 클래스는&amp;nbsp;최적의 클러스터 개수를 수동으로 찾지 않고 불필요한 클러스터의 가중치를 0으로 (또는 0으로 가깝게) 만든다.&amp;nbsp;클러스터 개수 n_components를 최적의 클러스터 개수보다 크다고 믿을 만한 값으로 지정하면,자동으로 불필요한 클러스터를 제거한다.&amp;nbsp;&amp;nbsp;&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;클러스터 개수에 대한 사전 지식은 BayesianGaussianMixture의 매개 변수 weight_concetration_prior 로 조정할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1628864755126&quot; class=&quot;python&quot; style=&quot;margin: 20px auto 0px; display: block; overflow: auto; padding: 20px; color: #383a42; background: #f8f8f8; font-size: 14px; font-family: 'SF Mono', Menlo, Consolas, Monaco, monospace; border: 1px solid #ebebeb; line-height: 1.71; cursor: default; z-index: 1;&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from sklearn.mixture import BayesianGaussianMixture

bgm = BayesianGaussianMixture(n_components=10, n_inits=10)
bgm.fit(X)

#불필요한 클러스터의 가중치는 0으로 설정된다.
np.round(bgm.weights_, 2)
&amp;gt;&amp;gt; array([0.4, 0.21, 0.4, 0., 0., 0., 0., 0., 0., 0.])&lt;/code&gt;&lt;/pre&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;3. 가우시안 혼합 모델의 한계&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&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;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예를 들어, 반달 데이터 셋을 군집하기 위해 베이즈 가우시안 혼합 모델을 사용하면, 아래와 같이 알고리즘은 필사적으로 타원을 찾는다. 2개 아니라 8개의 클러스터를 찾는다. 밀도 추정은 나쁘지 않으므로 이 모델은 이상치 감지를 위해 사용할 수는 있다. 하지만 두 개의 반달 모양을 식별하는 데는 실패했다.&amp;nbsp;&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;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;927&quot; data-origin-height=&quot;244&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wQVSQ/btraGPbbWuN/7bT3PbxQ7dHRrqrAsSmaQk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wQVSQ/btraGPbbWuN/7bT3PbxQ7dHRrqrAsSmaQk/img.png&quot; data-alt=&quot;&amp;amp;lt;타원형이 아닌 클러스터에 가우시안 혼합 모델 훈련하기&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wQVSQ/btraGPbbWuN/7bT3PbxQ7dHRrqrAsSmaQk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwQVSQ%2FbtraGPbbWuN%2F7bT3PbxQ7dHRrqrAsSmaQk%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;700&quot; height=&quot;184&quot; data-origin-width=&quot;927&quot; data-origin-height=&quot;244&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;타원형이 아닌 클러스터에 가우시안 혼합 모델 훈련하기&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Machine Learning/3. 비지도 학습 알고리즘</category>
      <category>BayesianGaussianMixture</category>
      <category>가중치 분포</category>
      <category>베이즈 가우시안 혼합 모델</category>
      <category>베이즈 정리</category>
      <category>베타 분포</category>
      <category>위샤트 분포</category>
      <author>Hwasss</author>
      <guid isPermaLink="true">https://lets-start-data.tistory.com/27</guid>
      <comments>https://lets-start-data.tistory.com/entry/9%EC%9E%A5-%EB%B9%84%EC%A7%80%EB%8F%84-%ED%95%99%EC%8A%B5-%EA%B5%B0%EC%A7%91-%EB%B2%A0%EC%9D%B4%EC%A6%88-%EA%B0%80%EC%9A%B0%EC%8B%9C%EC%95%88-%ED%98%BC%ED%95%A9-%EB%AA%A8%EB%8D%B8#entry27comment</comments>
      <pubDate>Sat, 19 Aug 2023 00:55:24 +0900</pubDate>
    </item>
    <item>
      <title>[군집] 가우시안 혼합 모델</title>
      <link>https://lets-start-data.tistory.com/entry/9%EC%9E%A5-%EB%B9%84%EC%A7%80%EB%8F%84-%ED%95%99%EC%8A%B5-34-%EA%B0%80%EC%9A%B0%EC%8B%9C%EC%95%88-%ED%98%BC%ED%95%A9</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;◈&amp;nbsp;&lt;/span&gt;&amp;nbsp;'군집' 목차&amp;nbsp;&lt;span style=&quot;color: #000000;&quot;&gt;◈&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/9%EC%9E%A5-%EB%B9%84%EC%A7%80%EB%8F%84-%ED%95%99%EC%8A%B5?category=882205&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;1. K-평균&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/9장-비지도-학습-24-DBSCAN-HDBSCAN&quot;&gt;2. DBSCAN&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-HDBSCAN&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;3. HDBSCAN&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-%EB%B3%91%ED%95%A9%EA%B5%B0%EC%A7%91&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;4. 병합군집&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-BIRCH-%EC%9C%A0%EC%82%AC%EB%8F%84-%EC%A0%84%ED%8C%8C-%EC%8A%A4%ED%8E%99%ED%8A%B8%EB%9F%BC-%EA%B5%B0%EC%A7%91&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;5. 평균-이동&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-BIRCH&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;6. BIRCH&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-%EC%9C%A0%EC%82%AC%EB%8F%84-%EC%A0%84%ED%8C%8C&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;7. 유사도 전파&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-%EC%8A%A4%ED%8E%99%ED%8A%B8%EB%9F%BC-%EA%B5%B0%EC%A7%91&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;8. 스펙트럼 군집&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;9. 가우시안 혼합 모델&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;가우시안 혼합 모델과 EM 알고리즘에 대해 이해하고, 사이킷런에서 GMM 구현 및 활용하는 방법을 알아보자.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/9%EC%9E%A5-%EB%B9%84%EC%A7%80%EB%8F%84-%ED%95%99%EC%8A%B5-%EA%B5%B0%EC%A7%91-%EB%B2%A0%EC%9D%B4%EC%A6%88-%EA%B0%80%EC%9A%B0%EC%8B%9C%EC%95%88-%ED%98%BC%ED%95%A9-%EB%AA%A8%EB%8D%B8&quot;&gt;10. 베이즈 가우시안 혼합 모델&lt;/a&gt;&lt;/span&gt;&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;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;1. 가우시안 혼합 모델&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;가우시안 혼합 모델은 샘플이 파라미터가 알려지지 않은 여러 개의 혼합된 가우시안 분포에서 생성되었다고 가정하는 확률 모델이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt; 하나의 가우시안 분포에서 생성된 모든 샘플은 하나의 클러스터를 형성한다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;일반적으로 이 클러스터는 타원형이다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;각 클러스터는 타원의 모양, 크기, 밀집도, 방향이 다르다. 샘플이 주어지면 가우시안 분포 중 하나에서 생성되었다는 것을 안다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;하지만 어떤 분포인지 또 이 분포의 파라미터는 무엇인지 알지 못한다.&amp;nbsp;&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;여러 GMM 변종이 있는데, 사이킷런에는 그 중 가장 간단한 버전이 GaussianMixture 클래스에 구현되어 있다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;GaussianMixture을 활용할 때, 사전에 가우시안 분포의 개수 k개를 알아야 한다.&amp;nbsp; &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;데이터 셋 X는 다음 확률 과정을 통해 생성되었다고 가정한다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;span style=&quot;font-size: 0.87em; letter-spacing: 0px; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;샘플마다 k개의 클러스터에서 랜덤하게 한 클러스터가 선택된다. j번째 클러스터를 선택할 확률은 클러스터의 가중치 ∮(j)로 정의된다. i번째 샘플을 위해 선택한 클러스터 인덱스는 z(i) 로 표시한다.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;z(i) = j 이면, 즉 i번째 샘플이 j번째 클러스터에 할당되었다면 이 샘플의 위치 x(i)는 평균 m(j) 이고 공분산 행렬이 &amp;sum;(j) 인 가우시안 분포에서 랜덤하게 샘플링된다. x(i) ~ N(m(j) , &amp;sum;(j))와 같이 쓴다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 생성 과정을 그래프 모형으로 나타내면 다음과 같다.&amp;nbsp;&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;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2424&quot; data-origin-height=&quot;1000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/k9DmF/btraL2tneT6/vVmiwBo8S6lqiezlfQWjU1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/k9DmF/btraL2tneT6/vVmiwBo8S6lqiezlfQWjU1/img.png&quot; data-alt=&quot;&amp;amp;lt;GMM의 그래프 모형 - 파라미터(사각형), 확률변수(원), 조건부 의존성(실선화살표) &amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/k9DmF/btraL2tneT6/vVmiwBo8S6lqiezlfQWjU1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fk9DmF%2FbtraL2tneT6%2FvVmiwBo8S6lqiezlfQWjU1%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;550&quot; height=&quot;227&quot; data-origin-width=&quot;2424&quot; data-origin-height=&quot;1000&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;GMM의 그래프 모형 - 파라미터(사각형), 확률변수(원), 조건부 의존성(실선화살표) &amp;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 data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;※ 가우시안 혼합 모델로 무엇을 하는가?&lt;/span&gt;&lt;/u&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;위 가정을 전제로 데이터 셋 X가 주어지면, 가중치 ∮와 전체 분포의 파라미터 m(1), ... , m(k) 와 &amp;sum;(1), ... , &amp;sum;(k) 까지를 추정한다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다시 말해, 가우시안 혼합 모델을 훈련시킨다는 것은&amp;nbsp;가중치와 전체 분포 파라미터를 추정하는 것이다.&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;※ 그렇다면, 어떻게 가중치과 전체 분포의 파라미터를 추정할까?&lt;/span&gt;&lt;/u&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;GaussianMixture 클래스는 기댓값-최대화(EM) 알고리즘을 사용한다.&amp;nbsp;&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;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;2. EM 알고리즘&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;클러스터 파라미터를 랜덤하게 초기화하고 수렴할 때까지 Expectation(기댓값) 와 Maximize(최대화) 두 과정을 반복한다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;2.1 과정&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;step1. E-step(기댓값 단계)&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;step2. M-Step(최대화 단계)&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;기능도 Likelihood 를 활용해, 각 샘플이 어떤 모델에서 생성되었을 때 가장 큰 확률을 갖는 지 확인하여, 모델의 파라미터를 추정하고 업데이트 한다.&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;위 두 과정을 간단한 수도 코드로 나타내면 다음과 같다.&lt;/span&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 alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;632&quot; data-origin-height=&quot;770&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cYemuR/btraGGrTwTb/qqbKnTRpk65Lf5h7CtdWZK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cYemuR/btraGGrTwTb/qqbKnTRpk65Lf5h7CtdWZK/img.png&quot; data-alt=&quot;&amp;amp;lt;EM Algorithm for GMM&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cYemuR/btraGGrTwTb/qqbKnTRpk65Lf5h7CtdWZK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcYemuR%2FbtraGGrTwTb%2FqqbKnTRpk65Lf5h7CtdWZK%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;500&quot; height=&quot;609&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;632&quot; data-origin-height=&quot;770&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;EM Algorithm for GMM&amp;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;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;2.2 수식 전개&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;위에서 살펴본 E-step 과 M-step 에서 진행되는 계산 수식을 살펴보면 다음과 같다.&lt;/span&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 alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1016&quot; data-origin-height=&quot;693&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bD8iTY/btraMp95GQC/o7jXq2Op6mI6PsgkMj1UYK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bD8iTY/btraMp95GQC/o7jXq2Op6mI6PsgkMj1UYK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bD8iTY/btraMp95GQC/o7jXq2Op6mI6PsgkMj1UYK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbD8iTY%2FbtraMp95GQC%2Fo7jXq2Op6mI6PsgkMj1UYK%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;860&quot; height=&quot;587&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1016&quot; data-origin-height=&quot;693&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;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;3. GaussianMixture 클래스&lt;/span&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;3.1 모델 훈련&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;사이킷런에서 GaussianMixture는 매개 변수 n_components 를 통해 클러스터 갯수를 n_init 을 통해 반복 횟수를 지정할 수 있다.&amp;nbsp;&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;훈련된 GaussianMixture 모델은 다양한 속성을 통해 각 클러스트의 위치, 크기, 모양, 방향, 상대적 가중치를 예측할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;- weights_ : 클러스터 가중치&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;- means_ : 클러스터 별 가우시안 분포 파라미터 평균&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;- covariance_ : 클러스터 별 가우시안 분포 파라미터 공분산 행렬&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;- converged_ : 모델이 수렴했는 지 여부&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1627532509681&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from sklearn.mixture import GaussianMixture

gmm = GaussianMixture(n_components=3, n_init=10)
gmm.fit(X)
print(gmm.weights_)  #array([0.20965228, 0,400662, 0,39028152])
print(gmm.means_)
print(gmm.covariances_)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;3.2 모델 예측&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 모델은 새로운 샘플을 가장 비슷한 클러스터에 손쉽게 할당할 수도 있다 (하드 군집). 또는 특정 클러스터에 속할 확률을 예측할 수 있다 (소프트 군집). 하드 군집을 위해서는 predict() 실행하고, 소프트 군집을 위해서는 predict_proba() 를 실행한다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1627534358838&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;gmm.predict(X)
&amp;gt;&amp;gt; array([0, 1, 2, 0, 0, 1... ])

gmm.predict_proba(X)
&amp;gt;&amp;gt; array([[2.323444, 6.33455, 9.64556],
          [1.645552, 6.75334, 9.83234],
          ...
          [1.00034, 8.34422, 2.224465]])&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;3.3 새로운 샘플 생성&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;sample() 메서드를 통해 가우시안 혼합 모델은 생성 모델이다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;즉 이 모델에서 새로운 샘플을 만들 수 있다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1627533459337&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;X_new, y_new = gmm.sample(6)

print(X_new)
&amp;gt;&amp;gt; array([[2.95400315, 2.636800992], [-1.16654575, 1.62792705], ... ]])

print(y_new)
&amp;gt;&amp;gt; array([0, 1, 2, 2, 2, 2])&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;3.4 확률 밀도 함수 (PDF)&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;score_samples() 메서드를 통해 주어진 위치에서 모델의 밀도 함수를 추정할 수 있다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;샘플이 주어진 그 위치의 확률 밀도 함수(PDF)의 로그를 예측한다.&lt;/b&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;score_samples() 점수가 높을 수록 밀도가 높은 것이다.&amp;nbsp;&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;score_smaples() 결과의 지숫값을 구하면 샘플의 위치에서 PDF 값이다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;확률 밀도 함수(PDF) 란, 샘플 X를 알 때 모델 파라미터에 따라 해당 모델에서 생성되었을 가능성으로 0~1 사이의 값을 갖는다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt; 샘플 X가 모델에 포함될 확률과는 다르다! &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;샘플이 특정 지역(모델)에 포함될 확률을 예측하려면 PDF 를 적분해야 한다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1627534596119&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;gmm.score_samples(X)
&amp;gt;&amp;gt; array([-2.060405, -3.566432, ... , -4.533432])&lt;/code&gt;&lt;/pre&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;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;가우시안 혼합 모델의 클러스터 평균, 결정 경계(파선), 밀도 등고선을 보여준다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;929&quot; data-origin-height=&quot;338&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8LvYh/btraHX7yxhx/g1F7BIvmS5YkRwTkUegkMK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8LvYh/btraHX7yxhx/g1F7BIvmS5YkRwTkUegkMK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8LvYh/btraHX7yxhx/g1F7BIvmS5YkRwTkUegkMK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8LvYh%2FbtraHX7yxhx%2Fg1F7BIvmS5YkRwTkUegkMK%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;600&quot; height=&quot;218&quot; data-origin-width=&quot;929&quot; data-origin-height=&quot;338&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;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;3.5 모델 규제&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;특성이나 클러스터가 많거나 샘플이 적을 때는 EM이 최적의 솔루션으로 수렴하기 어렵다. &lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이런 방법 중에 하나는 클러스터의 모양과 방향의 범위를 제한하는 것이다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;사이킷런에서 매개 변수 covariance_type 을 통해 제한할 수 있다.&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;spherial&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;diag&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;클러스터는 크기에 상관없이 어떤 타원형도 가능하다. 하지만 타원의 축은 좌표축과 나란해야 한다.&amp;nbsp;&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;tied&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;full&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&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;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;4.&amp;nbsp; 계산 복잡도&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;GausssianMixture 모델 훈련하는 계산 복잡도는 &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;샘플 개수 m, 차원 개수 n, 클러스터 개수 k 와 공분산 행렬의 제약에 따라 결정된다.&amp;nbsp;&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;covariance_type 이 spherial 이나 diag 인 경우, 데이터에 어떤 구조가 있다고 가정하므로 O(kmn) 이다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;covariance_type 이 tied 나 full 인 경우, O(kmn^2 + kn^2) 이다.&amp;nbsp;&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;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;5. 클러스터 개수 선택하기&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;K-평균 처럼 GaussianMixture 알고리즘은 적절한 클러스터 개수를 지정해야 한다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;가우시안 혼합에서는 K-평균에서 사용한 이너셔나 실루엣 점수를 활용할 수 없다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이런 지표들은 클러스터가 타원형이거나 크기가 다를 때 안정적이지 않기 때문이다.&amp;nbsp;&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;대신, BIC 나 AIC 와 같은 이론적 정보 기준을 최소화하는 모델을 찾는다.&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;BIC와 AIC는 모두 학습할 파라미터가 많은(즉 클러스터가 많은) 모델에게 벌칙을 가하고 &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;데이터에 잘 학습하는 모델에게 보상을 더한다. 이 둘은 종종 동일한 모델을 선택한다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;둘의 선택이 다를 경우, BIC가 선택한 모델이 AIC가 선택한 모델보다 간단한(파라미터가 적은) 경향이 있다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;하지만 데이터에 아주 잘 맞지는 않을 수 있다. (특히 대규모 데이터 셋에서 그렇다.)&lt;/span&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 alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1585&quot; data-origin-height=&quot;1000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rY6BC/btraLbj3Yhb/kZ24ZEhPvvX2ajBLUbKueK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rY6BC/btraLbj3Yhb/kZ24ZEhPvvX2ajBLUbKueK/img.png&quot; data-alt=&quot;&amp;amp;lt;BIC와 AIC&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rY6BC/btraLbj3Yhb/kZ24ZEhPvvX2ajBLUbKueK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrY6BC%2FbtraLbj3Yhb%2FkZ24ZEhPvvX2ajBLUbKueK%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;300&quot; height=&quot;189&quot; data-origin-width=&quot;1585&quot; data-origin-height=&quot;1000&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;BIC와 AIC&amp;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;pre id=&quot;code_1627541370644&quot; class=&quot;python&quot; style=&quot;margin: 20px auto 0px; display: block; overflow: auto; padding: 20px; color: #383a42; background: #f8f8f8; font-size: 14px; font-family: 'SF Mono', Menlo, Consolas, Monaco, monospace; border: 1px solid #ebebeb; line-height: 1.71; cursor: default; z-index: 1;&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;print(gmm.bic(X))
print(gmm.aic(X))&lt;/code&gt;&lt;/pre&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;여러 가지 클러스터 개수 K에 대한 AIC, BIC를 확인한 후, 정보 조건이 최소가 되는 지점의 K를 찾는다.&lt;/span&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 alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;928&quot; data-origin-height=&quot;252&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ZztWM/btraLsTP1ca/9K7Sm2xCi1QV1Cy2uvAB20/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ZztWM/btraLsTP1ca/9K7Sm2xCi1QV1Cy2uvAB20/img.png&quot; data-alt=&quot;&amp;amp;lt;여러 가지 클러스터 개수 k에 대한 AIC, BIC&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ZztWM/btraLsTP1ca/9K7Sm2xCi1QV1Cy2uvAB20/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZztWM%2FbtraLsTP1ca%2F9K7Sm2xCi1QV1Cy2uvAB20%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;800&quot; height=&quot;217&quot; data-origin-width=&quot;928&quot; data-origin-height=&quot;252&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;여러 가지 클러스터 개수 k에 대한 AIC, BIC&amp;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 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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;i&gt;cf. 기능도 함수 (Likelihood)&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style=&quot;margin: 20px 0px; caret-color: auto; background-color: #fafafa; padding: 20px 20px 22px; border: 1px dashed #dddddd; color: #333333;&quot; 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;line-height: 1.71; font-size: 0.87em; margin-top: 0px; margin-bottom: 0px;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;확률 probablity 와 기능도 likelihood 는 종종 구별 없이 사용된다. 하지만 통계학에서 이 둘은 다른 의미를 갖는다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;line-height: 1.71; font-size: 0.87em; margin: 1px auto 0px;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;확률 probablity는 파라미터 값을 알고 있을 때, X가 얼마나 그럴 듯한 지 설명한다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;line-height: 1.71; font-size: 0.87em; margin: 1px auto 0px;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;기능도 Likelihood는 X를 알고 있을 때, 특정 파라미터가 얼마나 그럴 듯한 지 설명한다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;line-height: 1.71; font-size: 0.87em; margin: 1px auto 0px;&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;line-height: 1.71; font-size: 0.87em; margin: 1px auto 0px;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u style=&quot;margin-top: 0px; margin-bottom: 0px;&quot;&gt;&lt;b&gt;X의 확률 분포를 구하려면&amp;nbsp;&lt;span style=&quot;background-color: #fafafa;&quot;&gt;⊙를 지정해야 한다.&lt;/span&gt;&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;line-height: 1.71; font-size: 0.87em; margin: 1px auto 0px;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;background-color: #fafafa; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;background-color: #fafafa;&quot;&gt;⊙를 1.3 으로 설정했을 때의 X 확률 분포를 알고자 한다면, Model f(X ;&amp;nbsp;&lt;span style=&quot;background-color: #fafafa;&quot;&gt;⊙)&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;background-color: #fafafa;&quot;&gt;에서&lt;span style=&quot;margin-top: 0px; margin-bottom: 0px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa;&quot;&gt;⊙ = 1.3 (수평선)으로 그어 왼쪽 아래 그래프 PDF f(X ;&amp;nbsp;&lt;span style=&quot;background-color: #fafafa;&quot;&gt;⊙&lt;/span&gt;=1.3) 을 얻을 수 있다. 이제 X 값에 따른 확률 값을 알고자 한다면, PDF 를 적분하면 된다.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;line-height: 1.71; font-size: 0.87em; margin: 1px auto 0px;&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;line-height: 1.71; font-size: 0.87em; margin: 1px auto 0px;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;background-color: #fafafa; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;background-color: #fafafa;&quot;&gt;&lt;span style=&quot;background-color: #fafafa;&quot;&gt;하지만&amp;nbsp;&lt;span style=&quot;background-color: #fafafa;&quot;&gt;&lt;u style=&quot;margin-top: 0px; margin-bottom: 0px;&quot;&gt;&lt;b&gt;⊙를 모른 채 X만 관측했다면&lt;/b&gt;&lt;/u&gt;, 관측한 X=2.5 (수직선)을 그어, 오른쪽 위 그래프에 나타난&amp;nbsp;&lt;u&gt;&lt;b&gt;기능도 함수&lt;/b&gt;&lt;/u&gt;를 얻을 수 있다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;line-height: 1.71; font-size: 0.87em;&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;확률 probablity 와 기능도 likelihood 는 종종 구별 없이 사용된다. 하지만 통계학에서 이 둘은 다른 의미를 갖는다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;확률 probablity는 파라미터 값을 알고 있을 때, X가 얼마나 그럴 듯한 지 설명한다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;기능도 Likelihood는 X를 알고 있을 때, 특정 파라미터가 얼마나 그럴 듯한 지 설명한다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;&lt;b&gt;X의 확률 분포를 구하려면&amp;nbsp;&lt;span style=&quot;background-color: #fafafa;&quot;&gt;⊙를 지정해야 한다.&lt;/span&gt;&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;background-color: #fafafa; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;background-color: #fafafa;&quot;&gt;⊙를 1.3 으로 설정했을 때의 X 확률 분포를 알고자 한다면, Model f(X ;&amp;nbsp;&lt;span style=&quot;background-color: #fafafa;&quot;&gt;⊙)&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;background-color: #fafafa;&quot;&gt;에서&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa;&quot;&gt;⊙ = 1.3 (수평선)으로 그어 왼쪽 아래 그래프 PDF f(X ;&amp;nbsp;&lt;span style=&quot;background-color: #fafafa;&quot;&gt;⊙&lt;/span&gt;=1.3) 을 얻을 수 있다. 이제 X 값에 따른 확률 값을 알고자 한다면, PDF 를 적분하면 된다.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;background-color: #fafafa;&quot;&gt;&lt;span style=&quot;background-color: #fafafa;&quot;&gt;&lt;span style=&quot;background-color: #fafafa;&quot;&gt;하지만&amp;nbsp;&lt;span style=&quot;background-color: #fafafa;&quot;&gt;&lt;u&gt;&lt;b&gt;⊙를 모른 채 X만 관측하여 최적의 &lt;u&gt;&lt;b&gt;⊙를 알고자 한다면&lt;/b&gt;&lt;/u&gt;&lt;/b&gt;&lt;/u&gt;, 관측한 X=2.5 (수직선)을 그어 오른쪽 위 그래프에 나타난&amp;nbsp;&lt;u&gt;&lt;b&gt;기능도 함수&lt;/b&gt;&lt;/u&gt;를 얻을 수 있다.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;데이터 셋 X가 주어졌을 때 모델 파라미터에 대해 가장 그럴듯한 ⊙값을 예측하기 위해서는 X에 대한 기능도 함수를 최대화하는 값을 구한다.&amp;nbsp; Likelihood 최댓값은 Likelihood 함수의 로그에 대한 최대값과 동일하다.&amp;nbsp; (Log Likelihood 를 구하는 것이 더 쉽다.)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;기능도 함수를 최대로 하는 ⊙값을 추정하고 나면 AIC, BIC를 계산할 수 있게 된다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;648&quot; data-origin-height=&quot;365&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/VdejW/btraKEUyxPM/X2BIGkT33BKkiKOhfrnP00/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/VdejW/btraKEUyxPM/X2BIGkT33BKkiKOhfrnP00/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/VdejW/btraKEUyxPM/X2BIGkT33BKkiKOhfrnP00/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVdejW%2FbtraKEUyxPM%2FX2BIGkT33BKkiKOhfrnP00%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;648&quot; height=&quot;365&quot; data-origin-width=&quot;648&quot; data-origin-height=&quot;365&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p data-ke-size=&quot;size14&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;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;6. 가우시안 혼합을 사용한 이상치 탐지&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이상치 탐지는 보통과 많이 다른 샘플을 감지하는 작업이다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이를 이상치라 부르고 보통 샘플을 정상치라고 부른다.&amp;nbsp;&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예를 들어, 부정 거래 감지, 제조 결함이 있는 제조 감지에 사용한다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;특히 실제로 다른 모델을 훈련시키기 전에 데이터 셋에서 이상치를 제거하는 데 사용 많이 한다.(모델 성능을 향상시킬 수 있다.)&amp;nbsp;&lt;/b&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;가우시안 혼합 모델을 이상치 탐지에 사용하는 방법은 매우 간단하다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;밀도가 낮은 지역에 있는 모든 샘플을 이상치로 볼 수 있다.&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이렇게 하려면 사용할 밀도 임계값을 정해야 한다.&amp;nbsp;&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예를 들어, 어떤 제조 회사가 결함 제품을 감지하고자, 결함을 판단하는 임계값을 결함 제품 비율 4%로 설정한다고 해보자. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;만약 거짓양성이 너무 많다면 (정상인 제품을 결함 제품으로 판단) 임계값을 더 낮춘다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;반대로 거짓음성이 너무 많다면(결함 제품을 정산 제품으로 판단) 임계값을 높인다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이렇게 정밀도/재현율 트레이드 오프를 고려하여 적절한 임계값을 정한다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1627537347565&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;densities = gmm.score_samples(X)
density_threshold = np.percentile(densities, 4)
anomalies = X[densities &amp;lt; dnesity_threshold]&lt;/code&gt;&lt;/pre&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;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이와 비슷한 작업이 &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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 알고리즘은 &lt;u&gt;이상치로 오염되지 않은 깨끗한 데이터 셋에서 훈련한다&lt;/u&gt;는 점이 이상치 탐지와 다르다.&amp;nbsp;&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;Tip!&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;가우시안 혼합 모델은 이상치를 포함해 모든 데이터에 맞추려고 한다. 따라서 이상치가 너무 많으면 모델이 정상치를 바라보는 시각이 편향되고 일부 이상치를 정상으로 잘못 생각할 수 있다. 이런일이 일어나면 먼저 한 모델을 훈려한 뒤 가장 크게 벗어난 이상치를 제거한다. 그 다음 정제된 데이터 셋에서 모델을 다시 훈련한다.&amp;nbsp;&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: #ee2323; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;또 다른 방법은 안정적인 공분산 추정 방법을 사용하는 것이다. (EllipticEnvelope 클래스 참고)&lt;/span&gt;&lt;/p&gt;</description>
      <category>Machine Learning/3. 비지도 학습 알고리즘</category>
      <category>Em</category>
      <category>GaussianMixture</category>
      <category>GMM</category>
      <category>가우시안 혼합 모델</category>
      <category>기댓값-최대화 알고리즘</category>
      <author>Hwasss</author>
      <guid isPermaLink="true">https://lets-start-data.tistory.com/25</guid>
      <comments>https://lets-start-data.tistory.com/entry/9%EC%9E%A5-%EB%B9%84%EC%A7%80%EB%8F%84-%ED%95%99%EC%8A%B5-34-%EA%B0%80%EC%9A%B0%EC%8B%9C%EC%95%88-%ED%98%BC%ED%95%A9#entry25comment</comments>
      <pubDate>Sat, 19 Aug 2023 00:55:17 +0900</pubDate>
    </item>
    <item>
      <title>[군집] 스펙트럼 군집</title>
      <link>https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-%EC%8A%A4%ED%8E%99%ED%8A%B8%EB%9F%BC-%EA%B5%B0%EC%A7%91</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;◈&amp;nbsp;&lt;/span&gt;&amp;nbsp;'군집' 목차&amp;nbsp;&lt;span style=&quot;color: #000000;&quot;&gt;◈&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/9%EC%9E%A5-%EB%B9%84%EC%A7%80%EB%8F%84-%ED%95%99%EC%8A%B5&quot;&gt;1. K-평균&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/9%EC%9E%A5-%EB%B9%84%EC%A7%80%EB%8F%84-%ED%95%99%EC%8A%B5-24-DBSCAN-HDBSCAN&quot;&gt;2. DBSCAN&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-HDBSCAN&quot;&gt;3. HDBSCAN&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-%EB%B3%91%ED%95%A9%EA%B5%B0%EC%A7%91&quot;&gt;4.&amp;nbsp;병합군집&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-BIRCH-%EC%9C%A0%EC%82%AC%EB%8F%84-%EC%A0%84%ED%8C%8C-%EC%8A%A4%ED%8E%99%ED%8A%B8%EB%9F%BC-%EA%B5%B0%EC%A7%91&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;5. 평균-이동&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-BIRCH&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;6. BIRCH&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-%EC%9C%A0%EC%82%AC%EB%8F%84-%EC%A0%84%ED%8C%8C&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;7. 유사도 전파&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;8. 스펙트럼 군집&lt;/span&gt;&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 Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;nbsp; &amp;nbsp; 스펙트럼 군집 알고리즘에 대해 알아보자.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/9%EC%9E%A5-%EB%B9%84%EC%A7%80%EB%8F%84-%ED%95%99%EC%8A%B5-34-%EA%B0%80%EC%9A%B0%EC%8B%9C%EC%95%88-%ED%98%BC%ED%95%A9&quot;&gt;9. 가우시안 혼합 모델&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/9%EC%9E%A5-%EB%B9%84%EC%A7%80%EB%8F%84-%ED%95%99%EC%8A%B5-%EA%B5%B0%EC%A7%91-%EB%B2%A0%EC%9D%B4%EC%A6%88-%EA%B0%80%EC%9A%B0%EC%8B%9C%EC%95%88-%ED%98%BC%ED%95%A9-%EB%AA%A8%EB%8D%B8&quot;&gt;10. 베이즈 가우시안 혼합 모델&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;1. 스펙트럼 군집&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;step1&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;step2&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;그다음 이 저차원 공간에서 또 다른 군집 알고리즘을 사용한다. (사이킷런에서는 k-평균 사용)&amp;nbsp;&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;스펙트럼 군집은 복잡한 클러스터 구조를 감지하고 graph cut을 찾는 데 사용할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 알고리즘은 샘플 개수가 많으면 잘 적용되지 않고 클러스터 크기가 매우 다르면 잘 동작하지 않는다.&amp;nbsp;&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;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;2. SpectralClustering&amp;nbsp;클래스&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;사이킷런에서 SpectralClustering 클래스를 통해 구현할 수 있다.&amp;nbsp;&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;SpectralClustering 의 몇 가지 매개 변수를 살펴보자.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;˙&amp;nbsp;n_cluster : 클러스터 갯수&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;˙&amp;nbsp;n_components : 임베딩시킬 저차원 공간의 고유 벡터 수&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;˙ affinity : 유사도 행렬 계산 시 유사도 측정 기준&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ex. nearest_neighbors, rbf, precomputed&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;˙assign_labels : 저차원 공간에서 사용할 군집 알고리즘&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ex. kmeans, discretize&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;˙n_init : 저차원 공간에서 kmenas 군집 알고리즘 사용 시, 센트로이드 초기화 진행 횟수&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1629389763295&quot; class=&quot;python&quot; style=&quot;margin: 20px auto 0px; display: block; overflow: auto; padding: 20px; color: #383a42; background: #f8f8f8; font-size: 14px; font-family: 'SF Mono', Menlo, Consolas, Monaco, monospace; border: 1px solid #ebebeb; line-height: 1.71; cursor: default; z-index: 1; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from sklearn.cluster import SpectralClustering

spectral_cluster = SpectralClustering(n_clustser = 3, 
                                      n_components = 5, 
                                      n_init = 10,
                                      assign_labels = 'kmenas')
                                      
cluster_labels = spectral_cluster.fit_predicts(X)&lt;/code&gt;&lt;/pre&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;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;i&gt;▶ SpectralClustering 클래스 구현에 대해 더 자세히 알고 싶다면&amp;nbsp; &amp;gt;&amp;gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;https://scikit-learn.org/stable/modules/generated/sklearn.cluster.SpectralClustering.html#sklearn.cluster.SpectralClustering&quot;&gt;참고 URL -&amp;nbsp; SpectralClustering&lt;/a&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>Machine Learning/3. 비지도 학습 알고리즘</category>
      <category>SpectralClustering</category>
      <category>스펙트럼 군집</category>
      <author>Hwasss</author>
      <guid isPermaLink="true">https://lets-start-data.tistory.com/63</guid>
      <comments>https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-%EC%8A%A4%ED%8E%99%ED%8A%B8%EB%9F%BC-%EA%B5%B0%EC%A7%91#entry63comment</comments>
      <pubDate>Sat, 19 Aug 2023 00:55:07 +0900</pubDate>
    </item>
    <item>
      <title>[군집] 유사도 전파</title>
      <link>https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-%EC%9C%A0%EC%82%AC%EB%8F%84-%EC%A0%84%ED%8C%8C</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;◈&amp;nbsp;&lt;/span&gt;&amp;nbsp;'군집' 목차&amp;nbsp;&lt;span style=&quot;color: #000000;&quot;&gt;◈&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/9%EC%9E%A5-%EB%B9%84%EC%A7%80%EB%8F%84-%ED%95%99%EC%8A%B5&quot;&gt;1. K-평균&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/9%EC%9E%A5-%EB%B9%84%EC%A7%80%EB%8F%84-%ED%95%99%EC%8A%B5-24-DBSCAN-HDBSCAN&quot;&gt;2. DBSCAN&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-HDBSCAN&quot;&gt;3. HDBSCAN&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-%EB%B3%91%ED%95%A9%EA%B5%B0%EC%A7%91&quot;&gt;4.&amp;nbsp;병합군집&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-BIRCH-%EC%9C%A0%EC%82%AC%EB%8F%84-%EC%A0%84%ED%8C%8C-%EC%8A%A4%ED%8E%99%ED%8A%B8%EB%9F%BC-%EA%B5%B0%EC%A7%91&quot;&gt;5. 평균-이동&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-BIRCH&quot;&gt;6. BIRCH&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;7. 유사도 전파&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;유사도 전파 군집 알고리즘에 대해 알아보자.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-%EC%8A%A4%ED%8E%99%ED%8A%B8%EB%9F%BC-%EA%B5%B0%EC%A7%91&quot;&gt;8. 스펙트럼 군집&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/9%EC%9E%A5-%EB%B9%84%EC%A7%80%EB%8F%84-%ED%95%99%EC%8A%B5-34-%EA%B0%80%EC%9A%B0%EC%8B%9C%EC%95%88-%ED%98%BC%ED%95%A9&quot;&gt;9. 가우시안 혼합 모델&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/9%EC%9E%A5-%EB%B9%84%EC%A7%80%EB%8F%84-%ED%95%99%EC%8A%B5-%EA%B5%B0%EC%A7%91-%EB%B2%A0%EC%9D%B4%EC%A6%88-%EA%B0%80%EC%9A%B0%EC%8B%9C%EC%95%88-%ED%98%BC%ED%95%A9-%EB%AA%A8%EB%8D%B8&quot;&gt;10. 베이즈 가우시안 혼합 모델&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;1&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;. 유사도 전파&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 알고리즘은 투표 방식을 사용한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;샘플은 자신을 대표할 수 있는 비슷한 샘플에 투표한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&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&gt;유사도 전파는 클러스터의 갯수를 미리 선정하지 않아도 된다는 점에서 가장 큰 장점이 있다.&amp;nbsp;&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;유사도 전파는 크기가 다른 여러 개의 클러스터를 감지할 수 있지만,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;알고리즘의 복잡도는 O(m^2) 이라 대규모 데이터 셋에는 적합하지 않다.&amp;nbsp;&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;아래와 같은 데이터가 존재한다고 할 때, 유사도 전파 알고리즘 과정은 다음과 같다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 61.1628%; height: 179px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 7.49862%; text-align: center;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 15.0472%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;feature1&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 17.3458%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;feature2&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 16.5884%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;feature3&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 16.5888%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;feature4&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 16.2719%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;feature5&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 7.49862%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;P1&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.0472%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;3&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 17.3458%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;4&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 16.5884%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;3&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 16.5888%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;2&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 16.2719%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;1&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 7.49862%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;P2&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.0472%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;4&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 17.3458%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;3&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 16.5884%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;5&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 16.5888%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;1&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 16.2719%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;1&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 7.49862%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;P3&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.0472%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;3&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 17.3458%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;5&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 16.5884%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;3&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 16.5888%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;3&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 16.2719%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;2&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 7.49862%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;P4&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.0472%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;1&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 17.3458%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;1&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 16.5884%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;3&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 16.5888%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;2&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 16.2719%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;3&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 7.49862%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;P5&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.0472%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;1&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 17.3458%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;1&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 16.5884%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;3&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 16.5888%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;2&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 16.2719%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;3&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&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;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;step1&lt;/u&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;모든 데이터 간의 유사성을 측정하여, 유사도 행렬(Similarity Matrix)을 생성한다.&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;아래 그림은 데이터 P3 에 대한 유사도 측정 방식을 도식화한 그림이다. &lt;span&gt;&lt;/span&gt;&lt;/span&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 alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1076&quot; data-origin-height=&quot;1000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LiY7e/btrcOit8JAM/4aGDq44xKnVbiH7hzNOcn1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LiY7e/btrcOit8JAM/4aGDq44xKnVbiH7hzNOcn1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LiY7e/btrcOit8JAM/4aGDq44xKnVbiH7hzNOcn1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLiY7e%2FbtrcOit8JAM%2F4aGDq44xKnVbiH7hzNOcn1%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;500&quot; height=&quot;465&quot; data-origin-width=&quot;1076&quot; data-origin-height=&quot;1000&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;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;모든 데이터에 대해 유사도를 측정하여&amp;nbsp; 유사도 행렬을 생성하면 다음과 같다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 47.1003%; height: 110px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 12.1287%; height: 22px; text-align: center;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 14.3305%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;P1&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.6686%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;P2&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.0878%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;P3&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8526%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;P4&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8192%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;P5&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 12.1287%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;P1&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.3305%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-22&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.6686%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-7&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.0878%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-6&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8526%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-12&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8192%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-17&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 12.1287%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;P2&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.3305%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-7&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.6686%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-22&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.0878%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-17&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8526%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-17&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8192%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-22&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 12.1287%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;P3&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.3305%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-6&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.6686%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-17&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.0878%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-22&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8526%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-18&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8192%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-21&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 12.1287%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;P4&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.3305%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-12&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.6686%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-17&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.0878%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-18&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8526%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-22&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8192%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-3&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 12.1287%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;P5&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.3305%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-17&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.6686%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-22&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.0878%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-21&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8526%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-3&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8192%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-22&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&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;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;step2&lt;/u&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;측정한 유사성 S(i,k) 바탕으로 데이터 i의 대표 데이터가 k가 되어야 하는 책임 크기를 측정한다.&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;아래 그림은 데이터 P3에 대한 다른 데이터들의 책임을 도식화한 것이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이와 동일하게 모든 데이터에 대해 책임 크기를 측정하여 Responsibility Matrix를 생성한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이때&amp;nbsp; availbility 에 해당하는 a(i,k) 의 초기값은 0 이다.&lt;/span&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 alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1332&quot; data-origin-height=&quot;1000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/l3fHE/btrcIgxTynN/JiKWG5akO3ldNGP4GTBR50/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/l3fHE/btrcIgxTynN/JiKWG5akO3ldNGP4GTBR50/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/l3fHE/btrcIgxTynN/JiKWG5akO3ldNGP4GTBR50/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fl3fHE%2FbtrcIgxTynN%2FJiKWG5akO3ldNGP4GTBR50%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;600&quot; height=&quot;450&quot; data-origin-width=&quot;1332&quot; data-origin-height=&quot;1000&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;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;모든 데이터에 대해 Responsibility Matrix 를 그리면 다음과 같다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 47.1003%; height: 132px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 12.1287%; height: 22px; text-align: center;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 14.3305%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;P1&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.6686%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;P2&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.0878%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;P3&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8526%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;P4&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8192%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;P5&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 12.1287%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;P1&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.3305%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-16&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.6686%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-1&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.0878%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;1&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8526%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-6&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8192%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-11&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 12.1287%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;P2&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.3305%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;10&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.6686%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-15&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.0878%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-10&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8526%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-10&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8192%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-15&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 12.1287%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;P3&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.3305%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;11&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.6686%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-11&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.0878%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-16&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8526%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-12&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8192%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-15&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 12.1287%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;P4&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.3305%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-9&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.6686%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-14&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.0878%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-15&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8526%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-19&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8192%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;9&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 12.1287%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;P5&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.3305%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-14&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.6686%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-19&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.0878%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-18&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8526%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;14&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8192%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-19&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&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;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;step3&lt;/u&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;측정한 Responsibility Matrix 바탕으로 Availability Matrix 를 구한다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Availability Matrix 생성 시, 대각선 요소와 그 외 요소를 구하는 방법이 다르다.&amp;nbsp;&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;아래 그림은 데이터 P3에 대한 Availabilty 를 도식화한 그림이다.&amp;nbsp;&lt;/span&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 alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1404&quot; data-origin-height=&quot;1000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b1fo4S/btrcIWe7Nfd/kSJG8Kr4ItIanw3AqEI5h0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b1fo4S/btrcIWe7Nfd/kSJG8Kr4ItIanw3AqEI5h0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b1fo4S/btrcIWe7Nfd/kSJG8Kr4ItIanw3AqEI5h0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb1fo4S%2FbtrcIWe7Nfd%2FkSJG8Kr4ItIanw3AqEI5h0%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;750&quot; height=&quot;534&quot; data-origin-width=&quot;1404&quot; data-origin-height=&quot;1000&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;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;모든 데이터에 대해 Availability 를 측정하여 Availability Matrix 를 생성하면 다음과 같다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 47.1003%; height: 132px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 12.1287%; height: 22px; text-align: center;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 14.3305%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;P1&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.6686%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;P2&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.0878%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;P3&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8526%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;P4&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8192%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;P5&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 12.1287%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;P1&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.3305%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;21&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.6686%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-15&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.0878%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-16&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8526%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-5&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8192%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-10&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 12.1287%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;P2&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.3305%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-5&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.6686%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;0&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.0878%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-15&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8526%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-5&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8192%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-10&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 12.1287%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;P3&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.3305%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-6&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.6686%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-15&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.0878%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;1&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8526%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-5&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8192%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-10&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 12.1287%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;P4&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.3305%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;0&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.6686%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-15&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.0878%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-15&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8526%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;14&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8192%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-19&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 12.1287%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;P5&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.3305%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;0&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.6686%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-15&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.0878%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-15&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8526%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-19&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8192%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;9&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&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;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;step4&lt;/u&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;r(i,k) 와 a(i,k) 가 수렴할 때까지 step1 ~ step3 과정 반복한다.&amp;nbsp;&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;r(i,k) 와 a(i,k) 가 수렴할 경우, &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Responsibility Matrix 와 Availability Matrix 를 합하여 기준 매트릭스를 생성하고&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;각 데이터 행(row) 에 대해 가장 큰 값을 갖는 데이터 열(Column) 을 대표 샘플로 선정한다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span&gt;동일한 대표 샘플을 갖는 데이터끼리 클러스터링지어주면된다. &lt;/span&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span&gt;아래 그림은 데이터 P3에 대한 기준 매트릭스를 도식화한 그림이다.&lt;/span&gt;&lt;/span&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 alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;1312&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eljyUj/btrcON1MuCj/IKDDJ80HcNzLOgIuIhtzkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eljyUj/btrcON1MuCj/IKDDJ80HcNzLOgIuIhtzkk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eljyUj/btrcON1MuCj/IKDDJ80HcNzLOgIuIhtzkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeljyUj%2FbtrcON1MuCj%2FIKDDJ80HcNzLOgIuIhtzkk%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;400&quot; height=&quot;525&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;1312&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;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;모든 데이터에 대해 기준 매트릭스를 생성하면 다음과 같다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 47.1003%; height: 132px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 12.1287%; height: 22px; text-align: center;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 14.3305%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;P1&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.6686%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;P2&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.0878%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;P3&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8526%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;P4&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8192%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;P5&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 12.1287%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;P1&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.3305%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;5&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.6686%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-16&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.0878%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-15&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8526%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-11&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8192%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-21&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 12.1287%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;P2&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.3305%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;5&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.6686%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-15&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.0878%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-25&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8526%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-15&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8192%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-25&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 12.1287%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;P3&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.3305%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;5&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.6686%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-26&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.0878%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-15&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8526%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-17&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8192%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-25&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 12.1287%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;P4&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.3305%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-9&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.6686%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-29&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.0878%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-30&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8526%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-5&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8192%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-10&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 12.1287%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;P5&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.3305%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-14&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.6686%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-34&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.0878%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-33&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8526%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-5&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 15.8192%; height: 22px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-10&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;2. AffinityPropagation 클래스&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;사이킷런에서 AffinityPropagation 클래스를 통해 유사도 전파 군집을 구현할 수 있다.&amp;nbsp;&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Affinity Propagation 클래스의 몇 가지 매개 변수를 살펴보자&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;˙damping : 새로 들어오는 값에 대해 현재 값을 유지하는 정도로 0.5가 디폴트 값&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;˙convergence_iter : 수렴으로 간주하기 위한 반복 횟수(X번 동안 r(i,k) 와 a(i,k) 변화 없으면 수렴으로 간주)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;˙preference : 클러스터 내 요소 갯수에 영향을 준다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;˙affinity : 유사도 측정 시 사용할 지표&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1629467521111&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from sklearn.cluster import AffinityPropagation 

clustering = AffinityPropagation(random_state=5)
clustering.fit(X)
clustering.predict(X_new)

print(clustering.labels_)
print(clustering.cluster_centers_)&lt;/code&gt;&lt;/pre&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;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;i&gt;&lt;i&gt;▶&amp;nbsp;&lt;/i&gt;AffinityPropagation클래스 구현에 대해 더 자세히 알고 싶다면 &amp;gt;&amp;gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;https://scikit-learn.org/stable/modules/generated/sklearn.cluster.AffinityPropagation.html#sklearn.cluster.AffinityPropagation&quot;&gt;참고 URL -&amp;nbsp; AffinityPropagation&lt;/a&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Machine Learning/3. 비지도 학습 알고리즘</category>
      <category>AffinityPropagation</category>
      <category>Availability Matrix</category>
      <category>Responsibility Matrix</category>
      <category>유사도 전파</category>
      <author>Hwasss</author>
      <guid isPermaLink="true">https://lets-start-data.tistory.com/62</guid>
      <comments>https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-%EC%9C%A0%EC%82%AC%EB%8F%84-%EC%A0%84%ED%8C%8C#entry62comment</comments>
      <pubDate>Sat, 19 Aug 2023 00:54:59 +0900</pubDate>
    </item>
    <item>
      <title>[군집] BIRCH</title>
      <link>https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-BIRCH</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;◈&amp;nbsp;&lt;/span&gt;&amp;nbsp;'군집' 목차&amp;nbsp;&lt;span style=&quot;color: #000000;&quot;&gt;◈&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/9장-비지도-학습&quot;&gt;1. K-평균&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/9장-비지도-학습-24-DBSCAN-HDBSCAN&quot;&gt;2. DBSCAN&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-HDBSCAN&quot;&gt;3. HDBSCAN&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-%EB%B3%91%ED%95%A9%EA%B5%B0%EC%A7%91&quot;&gt;4.&amp;nbsp;병합군집&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-BIRCH-%EC%9C%A0%EC%82%AC%EB%8F%84-%EC%A0%84%ED%8C%8C-%EC%8A%A4%ED%8E%99%ED%8A%B8%EB%9F%BC-%EA%B5%B0%EC%A7%91&quot;&gt;5. 평균-이동&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;6. BIRCH&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;BIRCH 군집 알고리즘에 대해 알아보자.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-%EC%9C%A0%EC%82%AC%EB%8F%84-%EC%A0%84%ED%8C%8C&quot;&gt;7. 유사도 전파&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-%EC%8A%A4%ED%8E%99%ED%8A%B8%EB%9F%BC-%EA%B5%B0%EC%A7%91&quot;&gt;8. 스펙트럼 군집&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/9%EC%9E%A5-%EB%B9%84%EC%A7%80%EB%8F%84-%ED%95%99%EC%8A%B5-34-%EA%B0%80%EC%9A%B0%EC%8B%9C%EC%95%88-%ED%98%BC%ED%95%A9&quot;&gt;9. 가우시안 혼합 모델&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/9%EC%9E%A5-%EB%B9%84%EC%A7%80%EB%8F%84-%ED%95%99%EC%8A%B5-%EA%B5%B0%EC%A7%91-%EB%B2%A0%EC%9D%B4%EC%A6%88-%EA%B0%80%EC%9A%B0%EC%8B%9C%EC%95%88-%ED%98%BC%ED%95%A9-%EB%AA%A8%EB%8D%B8&quot;&gt;10. 베이즈 가우시안 혼합 모델&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;1. BIRCH&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;BIRCH는 특별히 대규모 데이터 셋을 위해 고안되었다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;BIRCH는 한 번만 데이터에 대해 검사하여 클러스터를 만들며&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;훈련 과정에서 새로운 샘플을 클러스터에 빠르게 할당할 수 있는 정보를 담은 트리 구조 CF-tree 를 만든다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;특성 개수가 너무 많지 않다면(20개 이하) 배치 k-평균보다 빠르고 비슷한 결과를 만든다.&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;설정한 일정 반경 내 존재하는 데이터에 대한 정보를 CF 에 담는다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;CF에 담기는 구체적인 정보는 다음과 같다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1931&quot; data-origin-height=&quot;995&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Dw0XF/btrcAB9Mlmu/1mk4zq0ODJFjq4YCyG5QU1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Dw0XF/btrcAB9Mlmu/1mk4zq0ODJFjq4YCyG5QU1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Dw0XF/btrcAB9Mlmu/1mk4zq0ODJFjq4YCyG5QU1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDw0XF%2FbtrcAB9Mlmu%2F1mk4zq0ODJFjq4YCyG5QU1%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;1931&quot; height=&quot;995&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1931&quot; data-origin-height=&quot;995&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;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;CF-tree는 CF에 대해&amp;nbsp; 인접 클러스터끼리 묶으며 계층적 트리 구조를 생성한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이때 트리 구조의 가장 아래 노드를 leaf Node 라 하고, 가장 위 노드를 Root 라 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;leaf Node 도 아니고 root 도 아닌 노드를 Non-leaf Node 라 한다.&lt;/span&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 alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;1026&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qNUXf/btrcIfc36E2/WkhQtyziWP8APwKdVqaLY1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qNUXf/btrcIfc36E2/WkhQtyziWP8APwKdVqaLY1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qNUXf/btrcIfc36E2/WkhQtyziWP8APwKdVqaLY1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqNUXf%2FbtrcIfc36E2%2FWkhQtyziWP8APwKdVqaLY1%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;330&quot; height=&quot;339&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;1026&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;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;CF-tree 바탕으로 진행되는 BIRCH 알고리즘은 다음과 같다.&amp;nbsp;&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;step1&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;모든 데이터를 스캔하고 초기 메모리에 CF-tree 를 만든다.&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;step2&amp;nbsp;&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;옵션으로 리프 항목을 검색하여 아웃라이어를 탐색하고 서브 클러스터를 통합하며 CF-tree를 바람직한 길이로 압축한다.&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;step3&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;모든 리프 노드 엔트리를 CF 값 기준으로 글로벌 클러스터링을 한다.&amp;nbsp;&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;&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;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;기존 데이터로 만들어진 CF-tree 바탕으로 새로운 엔트리가 들어왔을 경우 다음과 같이 진행된다.&amp;nbsp;&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;nbsp;&lt;u&gt;step1&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Root 노드부터 거리에 따라 가까운 자식 노드를 선택하면 CF-tree 를 타고 내려간다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다시 말해 거리가 가장 가까운 leaf 노드를 찾는다.&lt;/span&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-filename=&quot;blob&quot; data-origin-width=&quot;999&quot; data-origin-height=&quot;280&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cuZ6rF/btrcAbXWrc2/qhkS94oUFeKYibBqZyKHb1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cuZ6rF/btrcAbXWrc2/qhkS94oUFeKYibBqZyKHb1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cuZ6rF/btrcAbXWrc2/qhkS94oUFeKYibBqZyKHb1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcuZ6rF%2FbtrcAbXWrc2%2FqhkS94oUFeKYibBqZyKHb1%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;999&quot; height=&quot;280&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;999&quot; data-origin-height=&quot;280&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;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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;step2&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;leaf 노드 도달 시, 가장 가까운 leaf 엔트리가 임계 조건을 위반하지 않고 새로운 엔트리를 흡수할 수 있는 지 확인한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;만약 흡수 가능하다면 업데이트 되지만,&amp;nbsp;sub cluster 가 지닐 수 있는 최대 엔트리 갯수를 초과한다면 쪼개서 저장해야 하고&amp;nbsp;수정된 leaf 노드에 맞춰서 non leaf 노드의 CF 및 경로를 업데이트 한다.&amp;nbsp;&lt;/span&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-filename=&quot;blob&quot; data-origin-width=&quot;999&quot; data-origin-height=&quot;306&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJnzhH/btrczQlPJ8J/4F8vi5Bm8W2DZiLhcvaCB0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJnzhH/btrczQlPJ8J/4F8vi5Bm8W2DZiLhcvaCB0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJnzhH/btrczQlPJ8J/4F8vi5Bm8W2DZiLhcvaCB0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJnzhH%2FbtrczQlPJ8J%2F4F8vi5Bm8W2DZiLhcvaCB0%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;999&quot; height=&quot;306&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;999&quot; data-origin-height=&quot;306&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;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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;step3&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;가까운 노드를 찾아서 병합하기도 한다.&lt;/span&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-filename=&quot;blob&quot; data-origin-width=&quot;999&quot; data-origin-height=&quot;390&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wT2yw/btrcGkMSF5K/MJ9aKXYECwJ4Nj6M0lUvN0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wT2yw/btrcGkMSF5K/MJ9aKXYECwJ4Nj6M0lUvN0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wT2yw/btrcGkMSF5K/MJ9aKXYECwJ4Nj6M0lUvN0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwT2yw%2FbtrcGkMSF5K%2FMJ9aKXYECwJ4Nj6M0lUvN0%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;999&quot; height=&quot;390&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;999&quot; data-origin-height=&quot;390&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;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;2. Birch 클래스&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;◎ from sklearn.cluster import Birch&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;사이킷런에서 Birch 클래스를 통해 구현할 수 있다.&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Birch 클래스의 몇 가지 매개 변수를 살펴보자.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;˙threshold : 샘플로부터 subcluster 생성하기 위한 적정 반경&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;˙branching_factor : 각 노드 내에 존재할 수 있는 최대 CF subcluster 갯수&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1629389543243&quot; class=&quot;python&quot; style=&quot;margin: 20px auto 0px; display: block; overflow: auto; padding: 20px; color: #383a42; background: #f8f8f8; font-size: 14px; font-family: 'SF Mono', Menlo, Consolas, Monaco, monospace; border: 1px solid #ebebeb; line-height: 1.71; cursor: default; z-index: 1;&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from sklearn.cluster import Birch
brc = Birch(n_clusters=None)
brc.fit(X)
brc.Predict(X)&lt;/code&gt;&lt;/pre&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;i&gt;▶ BIRCH 클래스 구현에 대해 더 자세히 알고 싶다면 &amp;gt;&amp;gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;https://scikit-learn.org/stable/modules/generated/sklearn.cluster.Birch.html#sklearn.cluster.Birch&quot;&gt;참고 URL -&amp;nbsp; Birch&lt;/a&gt;&lt;/i&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;&amp;nbsp;&lt;/p&gt;</description>
      <category>Machine Learning/3. 비지도 학습 알고리즘</category>
      <category>birch</category>
      <category>cf</category>
      <category>CF-tree</category>
      <category>Clustering Features</category>
      <author>Hwasss</author>
      <guid isPermaLink="true">https://lets-start-data.tistory.com/61</guid>
      <comments>https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-BIRCH#entry61comment</comments>
      <pubDate>Sat, 19 Aug 2023 00:54:52 +0900</pubDate>
    </item>
    <item>
      <title>[군집] 평균-이동</title>
      <link>https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-BIRCH-%EC%9C%A0%EC%82%AC%EB%8F%84-%EC%A0%84%ED%8C%8C-%EC%8A%A4%ED%8E%99%ED%8A%B8%EB%9F%BC-%EA%B5%B0%EC%A7%91</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;◈&amp;nbsp;&lt;/span&gt;&amp;nbsp;'군집' 목차&amp;nbsp;&lt;span style=&quot;color: #000000;&quot;&gt;◈&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/9%EC%9E%A5-%EB%B9%84%EC%A7%80%EB%8F%84-%ED%95%99%EC%8A%B5&quot;&gt;1. K-평균&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/9%EC%9E%A5-%EB%B9%84%EC%A7%80%EB%8F%84-%ED%95%99%EC%8A%B5-24-DBSCAN-HDBSCAN&quot;&gt;2. DBSCAN&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-HDBSCAN&quot;&gt;3. HDBSCAN&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-%EB%B3%91%ED%95%A9%EA%B5%B0%EC%A7%91&quot;&gt;4.&amp;nbsp;병합군집&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;5. 평균-이동&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; 평균-이동 군집 알고리즘에 대해 알아보자.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-BIRCH&quot;&gt;6. BIRCH&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-%EC%9C%A0%EC%82%AC%EB%8F%84-%EC%A0%84%ED%8C%8C&quot;&gt;7. 유사도 전파&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-%EC%8A%A4%ED%8E%99%ED%8A%B8%EB%9F%BC-%EA%B5%B0%EC%A7%91&quot;&gt;8. 스펙트럼 군집&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/9%EC%9E%A5-%EB%B9%84%EC%A7%80%EB%8F%84-%ED%95%99%EC%8A%B5-34-%EA%B0%80%EC%9A%B0%EC%8B%9C%EC%95%88-%ED%98%BC%ED%95%A9&quot;&gt;9. 가우시안 혼합 모델&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/9%EC%9E%A5-%EB%B9%84%EC%A7%80%EB%8F%84-%ED%95%99%EC%8A%B5-%EA%B5%B0%EC%A7%91-%EB%B2%A0%EC%9D%B4%EC%A6%88-%EA%B0%80%EC%9A%B0%EC%8B%9C%EC%95%88-%ED%98%BC%ED%95%A9-%EB%AA%A8%EB%8D%B8&quot;&gt;10. 베이즈 가우시안 혼합 모델&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;1. 평균-이동&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;step1&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;step2&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;step3&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;step4&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;평균-이동은 지역의 최대 밀도를 찾을 때까지 데이터가 모여 있는 밀도가 높은 쪽으로 원을 이동시킨다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;동일한 지역에 (또는 충분히 가깝게) 안착한 원에 있는 모든 샘플은 동일한 클러스터가 된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;국부적 밀집도 추정에 의존한다.&amp;nbsp;&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;평균-이동 알고리즘은 클러스터의 개수를 지정할 필요가 없다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;대역폭의 크기에 따라서 알고리즘 자체적으로 클러스터의 개수를 최적으로 정한다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다시 말해 대역폭 크기에 따라 클러스터링 품질이 결정된다.&amp;nbsp;&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;평균-이동은 DBSCAN과 유사한 특징있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다만, 모양이나 개수에 상관없이 클러스터를 찾을 수 있다는 차이점이 존재한다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;하이퍼파라미터도 매우 적다. bandwidth&amp;nbsp;부르는 대역폭 크기에 해당하는 원 반경 딱 한개이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;하지만 DBSCAN 과 달리 평균-이동은 클러스터 내부 밀집도가 불균형일 때 여러 개로 나누는 경향이 있다.&amp;nbsp;&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;계산 복잡도는 O(m^2) 이라 대규모 데이터 셋에는 적합하지 않다.&amp;nbsp;&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;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;2. MeanShift 클래스&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;사이킷런에서 MeanShift 클래스를 통해 평균-이동 알고리즘을 구현할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1629338986669&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from sklearn.cluster import MeanShift

meanshift = MeanShift(bandwidth = 0.8)
cluster_labels = meanshift.fit_predicts(X)&lt;/code&gt;&lt;/pre&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;사이킷런에서 estimate_bandwidth를 통해 적절한 bandwidth 값을 얻을 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1629339484802&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from sklearn.cluster import estimate_bandwidth
from sklearn.cluster import MeanShift

opt_bandwidth = estimate_bandwidth(X)

meanshift2 = MeanShift(bandwidth = opt_bandwidth)&lt;/code&gt;&lt;/pre&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;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;i&gt;▶ MeanShift 클래스 구현에 대해 더 자세히 알고 싶다면 &amp;gt;&amp;gt;&amp;nbsp; &amp;nbsp;&lt;a href=&quot;https://scikit-learn.org/stable/modules/generated/sklearn.cluster.MeanShift.html#sklearn.cluster.MeanShift&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;참고 URL -&amp;nbsp; MeanShift&lt;/a&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>Machine Learning/3. 비지도 학습 알고리즘</category>
      <category>birch</category>
      <category>Cluster</category>
      <category>SpectralClustering</category>
      <category>군집</category>
      <category>스펙트럼 군집</category>
      <category>유사도 전파</category>
      <category>평균-이동</category>
      <author>Hwasss</author>
      <guid isPermaLink="true">https://lets-start-data.tistory.com/59</guid>
      <comments>https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-BIRCH-%EC%9C%A0%EC%82%AC%EB%8F%84-%EC%A0%84%ED%8C%8C-%EC%8A%A4%ED%8E%99%ED%8A%B8%EB%9F%BC-%EA%B5%B0%EC%A7%91#entry59comment</comments>
      <pubDate>Sat, 19 Aug 2023 00:54:43 +0900</pubDate>
    </item>
    <item>
      <title>[군집] 병합군집</title>
      <link>https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-%EB%B3%91%ED%95%A9%EA%B5%B0%EC%A7%91</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;◈&amp;nbsp;&lt;/span&gt;&amp;nbsp;'군집' 목차&amp;nbsp;&lt;span style=&quot;color: #000000;&quot;&gt;◈&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/9장-비지도-학습&quot;&gt;1. K-평균&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/9장-비지도-학습-24-DBSCAN-HDBSCAN&quot;&gt;2. DBSCAN&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-HDBSCAN&quot;&gt;3. HDBSCAN&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;4.병합 군집&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; 병합 군집 알고리즘에 대해 알아보자.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-BIRCH-%EC%9C%A0%EC%82%AC%EB%8F%84-%EC%A0%84%ED%8C%8C-%EC%8A%A4%ED%8E%99%ED%8A%B8%EB%9F%BC-%EA%B5%B0%EC%A7%91&quot;&gt;5. 평균-이동&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-BIRCH&quot;&gt;6. BIRCH&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-%EC%9C%A0%EC%82%AC%EB%8F%84-%EC%A0%84%ED%8C%8C&quot;&gt;7. 유사도 전파&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-%EC%8A%A4%ED%8E%99%ED%8A%B8%EB%9F%BC-%EA%B5%B0%EC%A7%91&quot;&gt;8. 스펙트럼 군집&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/9%EC%9E%A5-%EB%B9%84%EC%A7%80%EB%8F%84-%ED%95%99%EC%8A%B5-34-%EA%B0%80%EC%9A%B0%EC%8B%9C%EC%95%88-%ED%98%BC%ED%95%A9&quot;&gt;9. 가우시안 혼합 모델&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lets-start-data.tistory.com/entry/9%EC%9E%A5-%EB%B9%84%EC%A7%80%EB%8F%84-%ED%95%99%EC%8A%B5-%EA%B5%B0%EC%A7%91-%EB%B2%A0%EC%9D%B4%EC%A6%88-%EA%B0%80%EC%9A%B0%EC%8B%9C%EC%95%88-%ED%98%BC%ED%95%A9-%EB%AA%A8%EB%8D%B8&quot;&gt;10. 베이즈 가우시안 혼합 모델&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;1. 병합 군집&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;◎ from sklearn.cluster import AgglomerativeClsutering&lt;/b&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;병합 군집은 K평균보다 유연하고, 수치형 변수가 아니어도 쉽게 적용이 가능하다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;특잇점이나 비정상적인 그룹이나 레코드를 발견하는 데 더 민감하다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;병합 군집 알고리즘에 대해 살펴보자.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;병합 군집은 인접한 클러스터 쌍을 연결한다. (처음에는 샘플 하나로 시작한다.)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;병합된 클러스터 쌍을 트리로 모두 그리며 클러스터의 이진 트리를 얻을 수 있다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;step1&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;step2&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;모든 쌍의 클러스터 A, B 사이의 비유사도 D(A,B)를 계산한다.&amp;nbsp;&lt;/span&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 alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3958&quot; data-origin-height=&quot;1000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uA9LL/btrb8gcWAVv/ewCSIEujJqTp75oDXNTlcK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uA9LL/btrb8gcWAVv/ewCSIEujJqTp75oDXNTlcK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uA9LL/btrb8gcWAVv/ewCSIEujJqTp75oDXNTlcK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuA9LL%2Fbtrb8gcWAVv%2FewCSIEujJqTp75oDXNTlcK%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;3958&quot; height=&quot;1000&quot; data-origin-width=&quot;3958&quot; data-origin-height=&quot;1000&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;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;step3&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;D(A,B) 에 따라 가장 가까운 두 클러스터 A, B를 병합한다.&amp;nbsp;&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;step4&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;둘 이상의 클러스터가 남아 있으면 step2로 다시 돌아간다. 그렇지 않고 클러스터가 하나 남는다면 알고리즘을 멈춘다.&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;병합 군집은 대규모 샘플과 클러스터에 잘 확장되며 다양한 형태의 클러스터를 감지할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;특정 클러스터 개수를 선택하는데 도움이 되는 유용한 클러스터 트리를 만들 수 있다.&amp;nbsp;&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;사이킷런에서 AgglomerativeClsutering 클래스 통해 병합 군집 모델 구현 가능하다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;AgglomerativeClsutering&amp;nbsp; 클래스는 fit() 과 fit_predict()만 존재한다. (predict() 메서드 없음)&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;AgglomerativeClustering 클래스의 몇 가지 매개 변수를 살펴보자.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;˙n_clusters : 클러스터 갯수&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;˙affinity&amp;nbsp; &amp;nbsp; : 데이터 간의 유사도 측정 기준&amp;nbsp; &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&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;ex. euclidean, l1, l2, manhattan, cosine, precomputed&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;˙linkagae : 데이터 간의 연결 방식으로 알고리즘은 설정된 linkage 기준을 줄이도록 클러스터링할 것이다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&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;ex. average, complete, single&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1629388788787&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from sklearn.cluster import AgglomerativeClustering
clustering = AgglomerativeClustering()
clustering.fit(X)
print(clustering.labels_)

clustering.predict(X) #predict() 없음 -&amp;gt; 에러 발생!!!&lt;/code&gt;&lt;/pre&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;i&gt;▶ AgglomerativeClsutering&amp;nbsp;&amp;nbsp;클래스 구현에 대해 더 자세히 알고 싶다면&amp;nbsp; &amp;gt;&amp;gt; &amp;nbsp;&lt;a href=&quot;https://scikit-learn.org/stable/modules/generated/sklearn.cluster.AgglomerativeClustering.html#sklearn.cluster.AgglomerativeClustering&quot;&gt;참고 URL -&amp;nbsp; AgglomerativeClsutering&amp;nbsp;&lt;/a&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>Machine Learning/3. 비지도 학습 알고리즘</category>
      <author>Hwasss</author>
      <guid isPermaLink="true">https://lets-start-data.tistory.com/58</guid>
      <comments>https://lets-start-data.tistory.com/entry/%EB%AA%A8%EB%8D%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EA%B5%B0%EC%A7%91-%EB%B3%91%ED%95%A9%EA%B5%B0%EC%A7%91#entry58comment</comments>
      <pubDate>Sat, 19 Aug 2023 00:54:35 +0900</pubDate>
    </item>
  </channel>
</rss>