본문 바로가기
개발/머신러닝-딥러닝

2023.06.08 ML(머신러닝)의 Iris(아이리스)

by 상달군 2023. 6. 8.
728x90

1. ML(머신러닝)의 Iris DataSet

 


3.아이리스 데이터셋.ipynb

 

1.Iris DataSet

  • 데이터셋: 특정한 작업을 위해 데이터를 관련성 있게 모아놓은 것 
  • 사이킷런 데이터셋 페이지: https://scikit-learn.org/stable/modules/classes.html?highlight=datasets#module-sklearn.datasets


🎈실습 !

🔻모듈 추가 

from sklearn.datasets import load_iris

🔻 아이리스 객체 생성

iris = load_iris()

🔻 아이리스 값 확인

iris

🔻 아이리스 DESCR값 확인

print(iris['DESCR'])

🔻 아이리스 data값을 확인 합니다. 
🗨 data 값 안에는 Falot형으로 값이 저장 되있는걸 확인 할 수 있습니다.

data = iris['data']
data

🔻 아이리스 target값을 확인 합니다. 
🗨 target값 안에는어떤 값이 저장 되어있는지 확인합니다. 

target = iris['target']
target

🔻 아이리스 feature_names값을 확인 합니다. 
🗨 feature_names값 안에는 어떤 값이 저장 되어있는지 확인 해봅니다.

feature_names = iris['feature_names']
feature_names


위에 구한 target과 feature_names을 다루기 어렵기

때문에 이제 부터 Pandas를 이용하여 데이터프레임으로 만들고 다루어보겠습니다. 

 

🔻데이터 프레임 생성을 위해 모듈 추가

import pandas as pd

🔻데이터 프레임 생성& 확인

# 아이리스 데이터프레임 생성
df_iris = pd.DataFrame(data, columns=feature_names)
# 아이리스 데이터프레임 위에서 5개 뽑아 출력하기
df_iris.head()

🔻데이터 프레임에 target 내용 합치기

df_iris['target'] = target
df_iris


👀데이터셋을 나누기 

사용법 : train_test_split(독립변수, 종속변수, 테스트사이즈=0.25, 시드값)

'train_test_split'은 머신러닝 모델을 개발하고 평가하기 위해 데이터를 학습용(train)테스트용(test)으로 나누는 과정을 말합니다. 

 

🔻검증을 위한 모듈 추가

from sklearn.model_selection import train_test_split

🔻아이리스 데이터셋 나누기 

# train_test_split(독립변수, 종속변수, 테스트사이즈=0.25, 시드값)
# 테스트사이즈는 디폴트 0.25

#순서를 지켜줘야한다 !
X_train, X_test, y_train, y_test = train_test_split(df_iris.drop('target',1),#"target빼고 독립변수로 사용하겠다"
                                                    df_iris['target'],
                                                    test_size=0.2,
                                                    random_state=10)

🔻학습용과 테스트용으로 잘 나누어졌는지 확인을 합시다 ! 

X_train.shape, X_test.shape

y_train.shape, y_test.shape

🔻X_train을 확인하여 120개가 잘 섞였는지 확인합니다. 

X_train


이제 학습을 해보겠습니다. 

🔻학습을 위한 모듈 추가

from sklearn.svm import SVC
from sklearn.metrics import accuracy_score # accuracy_score : 얼마나 정확히 맞췄는데 확인하는애

🔻 객체 생성 

👀🗨SVM은 지도학습(Supervised Learning) 알고리즘으로, 주어진 데이터를 기반으로 분류(Classification)나 회귀(Regression)를 수행하는 모델입니다.

따라서, svc.fit(X_train, y_train)을 호출하면 SVM 모델 svc가 주어진 학습 데이터를 기반으로 학습되고, 학습된 모델은 이후에 새로운 데이터에 대한 예측을 수행할 수 있습니다.

#SVC객체 생성
svc = SVC()
svc.fit(X_train, y_train)
y_pred = svc.predict(X_test)
# 똑같은 데이터로 하여도 썪이는거에 따라서 정답률은 모든 사람이 다를수 있다(강사님이랑 값이 같을수도 다를수도 있음)
print('정답률 : ',accuracy_score(y_test, y_pred))
728x90

댓글