[K-최근접 이웃 알고리즘으로 붓꽃 품종 예측하기]
# 필요한 패키지 설치
from sklearn.datasets import load_iris
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score
from sklearn.model_selection import train_test_split
# sklearn.datasets에 포함된 iris 데이터 가져오기
iris = load_iris()
# 예측 모델 생성
dt_clf = KNeighborsClassifier()
# 검증집합과 학습집합으로 분리(검증30%, 학습70%)
X_train, X_test, Y_train, Y_test = train_test_split(iris.data, iris.target, test_size=0.3, random_state=20)
dt_clf.fit(X_train, Y_train) # 모델학습
pred = dt_clf.predict(X_test) # 학습한 데이터로 테스트
print(f"예측 정확도 : {accuracy_score(Y_test, pred)}")
[데이터 시각화]
- iris 데이터셋을 데이터프레임으로 변환
# 필요한 패키지 설치
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.datasets import load_iris
# sklearn.datasets에 포함된 iris 데이터 가져오기
iris = load_iris()
# iris 데이터 내 data값들
data=pd.DataFrame(iris.data)
# iris 데이터의 feature 이름
feature = pd.DataFrame(iris.feature_names)
# data의 컬럼명을 feature이름으로 수정하기
data.columns = feature[0]
# 세가지 붓꽃의 종류
target = pd.DataFrame(iris.target)
# 컬럼명 바꾸기
target.columns=['target']
# data와 target 데이터프레임을 합치기( axis=1, columns으로 합치기)
df=pd.concat([data,target], axis=1)
df.head()
- 데이터 구조 확인
# 데이터 구조 확인
df.info()
# target 컬럼을 object 타입으로 변경
df = df.astype({'target': 'object'})
- 시각화
# pairplot을 통해 4가지 속성 관계도 모두 출력
sns.pairplot(df, hue="target")
plt.show()