잠토의 잠망경

[ML] 붓꽃 KNN 본문

공부/Python

[ML] 붓꽃 KNN

잠수함토끼 2018. 9. 16. 12:02

붓꽃 KNN

GitHub

GitHub

내용

KNN 알고리즘을 이용하여 Classification을 하는데 그 목적이 있다.

Sample


import pandas as pd             # excel 같은 형태의 data table을 만들어준다.
import matplotlib.pyplot as plt # 그래프를 만들어준다.

from sklearn import datasets
from sklearn.model_selection import train_test_split    # test/train data split

# data set에서 값들을 갖고 온다.
iris_dataset = datasets.load_iris();

# training과 test를 나눈다.
X_train, X_test, y_train, y_test = train_test_split(iris_dataset['data'], iris_dataset['target'])

# data frame을 만든다.
iris_DataFrame = pd.DataFrame(X_train, columns=iris_dataset.feature_names)


# c는 color로 해당 위치에 없으면 error가 난다. 주의
grr = pd.plotting.scatter_matrix(
        iris_DataFrame,
        c=y_train,
        alpha=.8,
        figsize=(15,15),
        hist_kwds={'bins':20},
        marker='o',

)

# file로 이미지를 떨군다.
plt.savefig('foo1.png')



# n_neighbors=숫자 는 근처에 있는 이웃의 갯수이다.
# 이웃이 많으면 가장 중간 위치에 있다.
import numpy as np  # 배열을 만드는데 사용한다.
from sklearn.neighbors import KNeighborsClassifier


knn = KNeighborsClassifier(n_neighbors=1)
knn.fit(X_train, y_train)


#test용 data만들기
X_new = np.array([[6.3, 2.5, 5. , 1.9]])


# 예측하기, test case 1
prediction = knn.predict(X_new)
print("{}".format(prediction))
print("{}".format(iris_dataset['target_names'][prediction]))


# 평가하기 how 1
y_pred = knn.predict(X_test)
print("{}".format(y_pred))
print("{}".format(np.mean(y_pred == y_test)))

# 평가하기 how 2
print("{}".format(knn.score(X_test, y_test)))


Comments