Python 인공지능 K-Means ( 비지도 학습 ) 머신 러닝 K-Means Clustreing

2022. 9. 14. 15:56빅데이터 파이썬 기반

728x90

안녕하세요 오늘은 파이썬 인공지능 Python K-Means라는  비지도 학습에 대해서 알아보려고 합니다 

일단 K-Means 가 뭐지 라고 생각 드실 수 있는데 아예 모르시는 분들은 이내용을 한번 읽어 보시고 밑에

를 읽어보시면 좋을것 같습니다 (알면 뛰어넘어가 주세요 ~~!)

 

K-Means이라는 것은 항상 인공지능 또는 머신러닝 딥러닝에는 문제와 문제의 대한 결과를 학습시키는 것 

입니다 하지만  문제의 대한 결과가 없을떄는 문제끼리 분류하여 만약 또 새로운 문제가 들어왔을 때 

어딘에 데이터 집단이 속하지는 분석하는 결과입니다 Mean이라는 것은 평균을 뜻하는데요 즉 같은 갑들의

평균을 구하여 집단을 만든다고 생각하시면 됩니다 자이제 간단하게 하나하나 보면서 설명하겠습니다

 

 

1 데이터 만들기 

from sklearn.datasets import make_blobs이라는 모듈을 import 해야 합니다  이 모듈은 어디에 사용하냐면

클러스트링 즉 비지도 학습을 할떄 사용하는 모듈입니다 

 

x, y = make_blobs(n_samples= 200 , centers= 3 , n_features = 2 , random_state= 1)

n_samples = 만들데이터 의 수량  , cneters =  중심점 구하기 

 

이렇게 데이터를 만든후에  데이터를 만들어 찍어보면  밑에 처럼 데이터 집단이 3가지를 만든다는 것을 

알 수 있습니다 

 

2 데이터 분리하기 

 

from sklearn.model_selection import train_test_split
x_train, x_test, y_train , y_test  = train_test_split( x , y, test_size= 0.2 )

 

train_test_split 모듈 함수를 가져와 사용합니다 train_test_split 함수는  데이터를 학습용 그리고 검증용

즉 데이터를 학습시켰다면 이제 그 학습된것이 맞는지 확인해보기 위한 검증용 데이터를 나눠주는 모듈입니다

train_trst_split(문제 , 정답 , 테이스 사이즈 ) 를 적으면  x 값과 y 값을 리턴합니다 

 

 

 

3 KMeans Python 인공지능 비지도 학습 시키기 

 

from sklearn.cluster import KMeans
kmean = KMeans(n_clusters= 3) 

위에처럼 하여 점이 3개이다 즉 데이터 집단이 3개이다를 알려주는 것입니다 

이 모듈은 KMeans 객체를 만들 때 불러주는 모듈입니다 사용할 때는 정답이 없고 x 값 즉 문제만 있을 때

사용하는 모듈입니다   이렇게 한 후에 kmean이라는 모듈을 학습시켜 보겠습니다 

 

만든 객체에 fit 함수를 사용하면 되는데요  

kmean.fit( 문제 ) 

 

사이 킷 런 모듈에서는 다른 값들은 문제와 정답을 둘 다 넣어줘야 하는데요 kmean 함수는 문제만 넣어주면

값이 나온다는 것을 알 수 있습니다 위에 방법처럼 하여 kmean 함수를 학습시켜줍니다 

 

그 후 kmean 함수에 2번째에 했던 x_test 값을 검증하기 위해서 predict ( 예측하다 )라는 뜻을 가진 함수를

불러와 x_test 값을 넣어줍니다 

 

test_values  = kmean.predict(x_test)

 

이렇게 하면 데이터 값이 나온 다는 것을 알 수 있습니다  

 

 

4 Python Kmean  중심값 알아내기 

 

Python Kmean 모듈에 x 값하나 만 주었는데도 중심값을 알아내여 중심값 근처로 데이터들이 그룹을

만들어 짝지어 준다는 것이라고 말했는데요 

 

 

이렇게 위에처럼 나온다는 것을 알 수 있습니다 Kmean 은 언제 사용하는 것이냐면 만약 문제만

있고 정답이 없을 때 그룹을 짝지어 그 그룹에 들어가면 그거와 비슷한 값이라고 유추 할 때 사용하는 것

입니다 사실 이것보다는 그냥 학습시키는 값이 최고로 좋은 방법입니다 굳이 이것을 잘 사용하려고 하지 않습니다

 

그러니 만약 문제만 있고 정답이 없다면 이렇게 사용하시면 됩니다 감사합니다

728x90