알고리즘(kNN, k-means)의 요약
강의록
k인접법(kNN)
분류 결과는
집합 끝났어?
특징.
k-means++라는 수법을 사용하면 초기값이 잘 분산된다.
사람의 눈으로 k의 값을 판단할 필요가 있다.
KNN에 대한 질문은 없습니다.
수료시험~ 연습문제~ (k-means)
질문 22(k-means)
안쪽 첫 번째 for링
모든 데이터의 최근 집단 센터 처리를 확인하십시오.
for centroid in centroids:
for i, x in enumerate(data):
indexes[i] = np.argmin(np.sum((x - centroid) ** 2, axis=1))
설명x: 기존 데이터
집단 센터의 데이터
각 성분의 차이를 구하다.
(...) **2:성분 차이에 따라 제곱.
np.sum(...,axis=1): 서로 다른 성분의 차이를 더한다.오른쪽에 넣다.
np.argmin: 최소 값을 가진 인덱스를 되돌려줍니다.
질문 23(k-means)
내 두 번째 for 순환
집단의 중심을 다시 계산하다.
다시 계산하는 것은 데이터를 계산하는 평균치를 가리킨다.
for i in range(k):
centroisd[i] = data[indexes==i].mean(axis=0)
설명k: 클러스터 개수(4개)
i:군집 번호(따위, 0~3)
덩어리의 중심에는 여러 개가 있다
데이터: 집단의 번호 i와 일치하는 데이터를 추출합니다.
data[...].mean: 해당 데이터의 평균값을 계산합니다.
질문 25(k-means)
k-means의 단점은 초기값이 가까울 때 잘 분류되지 않는다는 것이다.
k-means++로 이 단점이 개선되었습니다.
질문 26(k-means++)
k-means++로 초기 집단 중심(질심)을 확정하는 알고리즘
probabilities = np.repeat(1/n, n)
centroids = np.zeros((k, 2))
distances = np.zeros((n, k))
for in in range(k):
centroids[i] = data[np.random.choice(np.arange(n), p=probabirities, size=(1))]
distances[:, i] = np.sum((data - centroids[i]) ** 2, axis=1)
probabilities = np.sum(distance, axis=1) / np.sum(distance)
확률을 설정하다.확률이니까 다 합치면 1이야.총 거리에서 각 데이터의 거리 비율을 계산합니다.
배율을 probabilities 변수로 설정합니다.
거리가 멀다
=probabilities 변수에 설정된 값이 큽니다.
= 다음에는 질심으로 뽑힐 확률이 높다
이런 구조.
반대로 근거리의 데이터를 질심으로 선택하기는 어렵다.
이렇게 먼 거리를 질심으로 선택한다.
용어
클러스터 센터: 중심
실장 연습(kNN)
위의 결과는 k의 값이 3인 경우이다.
100×메쉬 격자선 100개 만들기
분류 중입니다.
넘피를 사용해 실시한 결과지만 충분히 분류할 수 있다.
k의 값을 10으로 설정하면 매끄러운 선을 그립니다.
왜냐하면 어느 정도의 k가 적당한지 기계적으로 찾기가 어려워요.
사람의 눈으로 결과를 볼 때, 매개 변수 (kNN의 경우 k) 의 값이 적절한지 여부
판단할 필요가 있다.
scikit-learn을 사용하는 KNeighbors Classifier반 사람들도 시행을 시도했다.
넘피 때와 같은 그림을 그렸어요.
물론 NumPy가 직접 쓴 것과 같은 알고리즘으로
KNeighbors Classifier 반이 운영 중이죠.
실장 연습(k-means)
이거는 iter.max=100의 경우.
예쁘게 모일 수 있어요.
해보다max=2 실행 후
그래도 예쁘게 모일 수 있어요.
(100의 경우와 분류 경계는 거의 같다)
이번 데이터는 세 가지로 나뉘어져 있습니다.
클러스터 센터를 다시 계산하는 횟수도 줄일 수 있겠지.
반대로 데이터가 명확하게 구분되기 어려운 상황에서
집단의 중심을 여러 번 다시 계산해야 하죠.
Reference
이 문제에 관하여(알고리즘(kNN, k-means)의 요약), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/amateur2020/items/6e8a6adb754c8299f40a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)