클러스터 프로파일링
Coddy Machine Learning 여정의 비지도 학습 섹션에 포함된 레슨. 51개 중 11번째.
이 장에서는 클러스터 번호를 사람들이 활용할 수 있는 그룹으로 바꿉니다. 이 장이 끝나면 모든 클러스터에 이름이 붙습니다:
2라는 숫자만으로는 아무것도 알 수 없습니다. 클러스터 안에 있는 각 특성의 평균인 프로필이 의미를 알려줍니다. 레이블을 열로 추가한 다음 그룹화하세요:
park["cluster"] = km.labels_
print(park.groupby("cluster").mean().round(1))클러스터당 한 행씩 출력합니다:
hours rides age
cluster
0 6.0 6.2 38.4
1 2.4 3.0 45.8
2 6.8 13.9 20.7이제 각 행을 단어처럼 읽어 보세요. 클러스터 2는 젊고, 7시간 동안 머물며, 놀이기구를 14번 탑니다. 스릴을 추구하는 방문객들이죠. 클러스터 1은 일찍 떠납니다. 짧게 방문하는 사람들이죠.
챌린지
중급노래방은 손님에 대해 알고 싶어 합니다. 시작 코드는 손님을 3개의 클러스터로 나눕니다. names에는 한 달 방문 횟수가 가장 적은 클러스터부터 가장 많은 클러스터까지 각 클러스터의 이름이 들어 있습니다.
- 레이블을
guests에cluster열로 추가하세요. - 클러스터의 평균과 손님 수를 구해 프로파일을 만들고,
visits_month를 기준으로 정렬하세요. - 클러스터마다 이름과 평균을 소수점 첫째 자리까지 표시해 한 줄씩 출력하세요.
다른 노래방의 경우:
Once in a while: 30 guests, 1.4 visits a month, 2.5 songs, 3.2 hours
Regulars: 45 guests, 3.0 visits a month, 4.6 songs, 2.0 hours
Superfans: 15 guests, 7.4 visits a month, 9.2 songs, 2.8 hours직접 해보기
import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.cluster import KMeans
# 노래방 손님 110명: visits a month, 방문당 부른 노래 수, 방문당 머문 시간
guests = pd.read_csv("karaoke.csv")
scaled = StandardScaler().fit_transform(guests)
km = KMeans(n_clusters=3, n_init=10, random_state=0)
km.fit(scaled)
# 한 달 방문 횟수가 가장 적은 그룹부터 가장 많은 그룹까지의 이름
names = ["Once in a while", "Regulars", "Superfans"]
# 아래에 코드를 작성하세요
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
비지도 학습의 모든 레슨
직접 연습해 보세요: 온라인 Python 컴파일러