1. 하고 싶은 것
distortions = []K = range(1,12)for k in K: kmeanModel = KMeans(n_clusters = k).fit(service1_s1[['data']]) kmeanModel.fit(service1_s1[['data']]) distortions.append(sum(np.min(cdist(service1_s1[['data']], kmeanModel.cluster_centers_, 'euclidean'), axis=1)) / service1_s1.shape[0])
이 코드에서, k를 12까지 돌리고 & bold 해놓은 service1_s1의 마지막 숫자를 1부터 75까지로 바꾸고 싶음.그러니까service1_s1일 때 k가 1~12 일때의 값 찾기service1_s2일 때 k가 1~12 일때의 값 찾기...를 하고 싶어
2. 구현 결과(오류)
아까 갤에 글 올렸는데 그냥 먼저 짜오라고 해서 짜봤는데... 너무 허접해 미안
distortions = []K = range(1, 12) for i in range(1, 75): for k in K: kmeanModel = KMeans(n_clusters = k).fit(service1_s[i][['data']]) kmeanModel.fit(service1_s[i][['data']]) distortions.append(sum(np.min(cdist(service1_s[i][['data']], kmeanModel.cluster_centers_, 'euclidean'), axis=1)) / service1_s[i].shape[0])
라고 무식하게 짰는데 당연히 안됨 오류는 IndexError: list index out of range 오류가 뜸...이 경우에 어떻게 해야 할까? 검색 중인데 답이 없네...
말 그대론데 리스트 인덱스 범위가 벗어났다고. 값 꺼내는 부분을 잘 살펴보셈
그리고 키붕쓰 잘 모르겠으면 디버그 찍어보면서 하셈 콘솔에 찍던가
ㅠ ㅠ키붕쓰... 너말대로 i랑 k 불러오는 과정에서 문제 생긴 것 같은데 파이썬 짜본 적이 많이 없어서 잘 모르겠네 k랑 i 배열 선언 다시 봐야할 것 같음