꽃잎 데이터셋
import numpy as np
import pandas as pd
from sklearn.datasets import load_iris
iris_dataset = load_iris()
iris_dataset.keys()
data, target, target_names, DESCR, feature_names, filename을 가지는 iris 데이터셋을 가져옵니다.
품종 확인
iris_dataset['target_names']
setosa, versicolor, virginica 세 종류의 품종이 있다는 것을 알 수 있습니다.
데이터 형식
print('Type of data : {}'.format(iris_dataset['data'].dtype))
print('Size of data : {}'.format(iris_dataset['data'].shape))
format 함수를 이용하여 데이터 타입과 형식을 확인할 수 있습니다.
훈련 데이터와 테스트 데이터로 나누기
- 붓꽃 데이터를 훈련 데이터(75%)와 테스트 데이터(25%)로 나눕니다.
- 2차원 배열 형태인 data를 X, 1차원 배열 형태인 target을 y로 표현합니다.
- 옵션 random_state : 정수를 입력하면 숫자를 random하게 생성할 때 사용되는 seed 숫자로 사용합니다.
- suffle로 bool값, 데이터를 분리하기 전에 섞을 것인지를 지정합니다. 기본값은 True
데이터의 이상유무 확인
- 머신러닝이 없어도 풀 수 있는 문제인지
- 필요한 정보가 누락되지 않았는지
- 비정상적인 값이나 특이값은 없는지
mglearn 라이브러리 설치
!apt install mglearn
!pip install mglearn
mglearn은 그래프와 데이터셋을 손쉽게 다룰 수 있도록 만든 라이브러리
import mglearn
import matplotlib.pyplot as plt
import seaborn as sb
X_train으로 데이터 프레임 만들기
dfIris = pd.DataFrame(X_train, columns=iris_dataset.feature_names)
dfIris['kind'] = y_train
dfIris
sb.pairplot(dfIris, vars=['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)'],
hue = 'kind', markers=["o", "s", "D"], palette="hls", height=3)
plt.show()
from sklearn.neighbors import KNeighborsClassifier as knc
knn = knc(n_neighbors = 3) #3개의 데이터를 살펴보겠다.
knn.fit(X_train, y_train)
knc(algorithm = 'auto', leaf_size=30, metric='minkowski', metric_params=None, n_jobs=1,
n_neighbors=3, p=2, weights='uniform')
X_new = np.array([[5,2.9,1,0.2]])
prediction = knn.predict(X_new)
print("예측 : {}".format(prediction))
print("예측한 타깃의 이름: {}".format(iris_dataset['target_names'][prediction]))
테스트셋 확인
dfIrisTestSet = pd.DataFrame(X_test, columns=iris_dataset.feature_names)
dfIrisTestSet
행을 X_test로 컬럼을 iris_dataset의 feature_names로 데이터 프레임을 만들어 확인합니다.
테스트 결과 확인
y_pred = knn.predict(X_test)
print("테스트 세트에 대한 예측값 \n {}".format(y_pred))
print("테스트 세트의 정확도 : {:.2f}".format(knn.score(X_test, y_test)))
결과 확인
y_test
'빅데이터전문가양성과정' 카테고리의 다른 글
머신러닝을 이용한 암 데이터 다루기 (0) | 2020.11.23 |
---|---|
공공 데이터 활용 (0) | 2020.11.09 |
데이터 분석 (7일차) (1) | 2020.10.26 |
데이터 분석 (6일차) (0) | 2020.10.22 |
데이터 선택 & 슬라이싱 (6일차) (0) | 2020.10.22 |