일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 유니코드 제거
- 방향변경
- 보라카이
- 빅데이터분석기사필기
- 애니메이션
- OpenGL
- 너무오래됐다
- 데이터전처리
- 파이썬
- 필기후기
- 가고싶은데
- BeautifulSoup
- 호주
- 크롤링
- 빅데이터분석기사후기
- selenium
- 예쁜곳
- 정말
- 청청구역
- 마우스클릭
- 빅데이터분석기사
- 사각형변형
- 색상변경
- 멜버른
- 언제또가보지
- 오류
- 갈자신이없다
Archives
- Today
- Total
wisdiom 아니고 wisdom
4. 머신러닝 데이터 분석 (3) 본문
Clustering, 군집
군집(clustering) 분석은 비지도학습 유형으로 데이터셋의 관측값이 갖고 있는 여러 속성을 분석하여 서로 비슷한 특징을 갖는 관측값끼리 같은 클러스터(집단)로 묶는 알고리즘이다. 다른 클러스터 간에는 서로 완전하게 구분되는 특징을 갖기 때문에 어느 클러스터에도 속하지 못하는 관측값이 존재할 수 있다. 이런 특성을 이용해 특이 데이터(이상값, 중복값 등)를 찾는데 활용하기도 한다.
🌳 응용
- 신용카드 부정 사용 탐지, 구매 패턴 분석 등 소비자 행동 특성 그룹화
- 알고 있는 클러스터 밖의 사용 패턴을 찾아 무단 네트워크 침입과 같은 이상 행동 탐지
- 유사한 값을 갖는 특징을 적은 개수의 동질적인 범주로 그룹핑해 초대형 데이터셋을 단순화
🧨 k-Means
k-Means 알고리즘은 데이터 간의 유사성을 측정하는 기준으로 각 클러스터의 중심까지의 거리를 이용한다.
이 알고리즘의 목표는 클러스터 내의 차이를 최소화하고 클러스터 간의 차이를 최대화하는 것이다.
벡터 공간에 위치한 어떤 데이터에 대하여 k개의 클러스터가 주어졌을 때 클러스터의 중심까지 거리가 가장 가까운 클러스터로 해당 데이터를 할당한다. 다른 클러스터 간에는 서로 완전하게 구분하기 위하여 일정한 거리 이상 떨어져야 한다.
몇 개의 클러스터로 데이터를 구분할 것인지를 결정하는 k값에 따라 모형의 성능이 달라진다. 일반적으로 k가 클수록 모형의 정확도는 개선되지만, k값이 너무 커지면 선택지가 너무 많아지므로 분석의 효과가 사라진다.
🌳 모형 학습 및 검증
# cluster 군집 모형 가져오기
from sklearn import cluster
kmeans = cluster.KMeans(init='k-means++', n_clusters=5, n_init=10)
# 모형 학습
kmeans.fit(x)
# 예측(군집)
cluster_label = kmeans.labels_
# 예측 결과 df에 추가
df['Cluster'] = cluster_label
# 시각화
import matplotlib.pyplot as plt
df.plot(kind='scatter', x='Grocery', y='Frozen', c='Cluster', cmap='Set1', colorbar=False, figsize=(10, 10))
df.plot(kind='scatter', x='Milk', y='Delicassen', c='Cluster', cmap='Set1', colorbar=True, figsize=(10, 10))
plt.show()
반응형
'👩💻 > pandas' 카테고리의 다른 글
dataframe[column].str.contains() (0) | 2023.05.24 |
---|---|
3. 데이터프레임 응용(7) (0) | 2021.07.30 |
4. 머신러닝 데이터 분석(2) - 3 (0) | 2021.02.15 |
4. 머신러닝 데이터 분석(2) - 2 (0) | 2021.02.15 |
4. 머신러닝 데이터 분석(2) - 1 (0) | 2021.02.15 |
Comments