๋ถ๊ฝ์ ๊ฝ์ ๊ฐ์ด, ๊ฝ์ ๋๋น, ๊ฝ๋ฐ์นจ ๊ธธ์ด, ๊ฝ๋ฐ์นจ ๋จธ๋น ํน์ง์ ํ์ฉํด 3๊ฐ์ง ํ์ข ์ ๋ถ๋ฅํด๋ณด์
KNN๋ชจ๋ธ์ ์ด์์ ์ซ์๋ฅผ ์กฐ์ ํด๋ณด์
petal: ๊ฝ์/sepal: ๊ฝ๋ฐ์นจ ๐ธ๐บ
#์ฌ์ดํท๋ฐ์์ ์ ๊ณตํ๋ ๋ฐ์ดํฐ ์ธํธ ์์ฑํ๋ ๋ชจ๋
from sklearn.datasets import load_iris
iris_data = load_iris()
iris_data #Bunch ํด๋์ค ๊ฐ์ฒด(dictionary์ ์ ์ฌํจ)
# iris_dataset์ ํค ๊ฐ
iris_data.keys()
# DESCRํค์๋ ๋ฐ์ดํ์
์ ๋ํ ์ค๋ช
print(iris_data['DESCR'])
# target_names: ์ ๋ต/์์ธกํ๊ณ ์ ํ๋ ๋ถ๊ฝ ํ์ข
์ ์ด๋ฆ์ ๋ฌธ์์ด ๋ฐฐ์ด๋ก ๊ฐ์๊ณ ๋ฐ์ดํฐ
print(iris_data['target_names'])
#feature_names: ๊ฐ ํน์ฑ์ ์ค๋ช
ํ๋ ๋ฌธ์์ด
iris_data['feature_names']
# ๊ฝ์์ ๊ธธ์ด, ํน, ๊ฝ๋ฐ์นจ์ ๊ธธ์ด, ๋ฌต->2์ฐจ์numpy๋ฐฐ์ด์ ํํ
iris_data['data']
# target๊ฐ 1์ฐจ์ numpy๋ฐฐ์ด
#0์ setoda 1์ versocolor , 2๋ virginica
iris_data['target']
# library import
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split #๋ฐ์ดํฐmixed up
# ์ฌ์ดํฅ๋ฐ library ๊ฐ์ ธ์ค๊ธฐ
from sklearn.neighbors import KNeighborsClassifier
from sklearn import metrics
plt.rcParams['font.family']='Malgun Gothic'
#๋ฌธ์๋ฐ์ดํฐ 2์ฐจ์ ๋ฐ์ดํฐํ๋ ์ ์์ฑ
#columns name ์ค์ฅ
iris_df = pd.DataFrame(iris_data['data'],columns = ['sepal length (cm)','sepal width (cm)',
'petal length (cm)',
'petal width (cm)'])
iris_df
#๋ฌธ์ ์ ๋ต๋ฐ์ดํฐ ๋ถ๋ฆฌ
x = iris_df.values
y = iris_data['target']
#ํ๋ จ์ธํธ์ ํ๊ฐ์ธํธ๋ก ๋ถ๋ฆฌ
#train_test_split:๋ฐ์ดํฐ๋ฅผ ๋๋๊ธฐ ์ ์ ์ ์ฌ ๋์ ์์ฑ๊ธฐ๋ฅผ ์ฌ์ฉํด
#๋ฐ์ดํฐ์
์ ๋ฌด์์๋ก ์์ด์ค๋ค train: 70% test 30%
x_train,x_test,y_train,y_test=train_test_split(x,y,
test_size = 0.3,random_state = 65)
# random_state ๋ฉ๊ฐ๋ณ์: ํจ์๋ฅผ ์คํํด๋ ๊ฒฐ๊ณผ๊ฐ ๋๊ฐ์ด ๋์ค๊ฒ ๋๋ค
#ํ๋ จ์ฉ ์ธํธ ํฌ๊ธฐ ํ์ธ
print(x_train.shape)
print(y_train.shape)
print(x_test.shape)
print(y_test.shape)
#model์์ฑ
knn = KNeighborsClassifier(n_neighbors = 3)
#ํ๋ จ/ํ์ต
# ๋ชจ๋ธ๋ช
.fit(ํ๋ จ์ฉ ๋ฌธ์ ,ํ๋ จ์ฉ ๋ต)
knn.fit(x_train,y_train)
#์์ธก
#๋ชจ๋ธ๋ช
.predict(ํ
์คํธ์ฉ ๋ฌธ์ )
pre =knn.predict(x_test)
pre
#ํ๊ฐํ๊ธฐ
metrics.accuracy_score(pre,y_test)