본문 바로가기
Programming/AI

머신러닝 - 붓꽃 데이터로 어떤 붓꽃인지 예측하기

by 제타 2018. 6. 26.
반응형

붓꽃 데이터로 학습을 한 후 사용자에 의해 데이터를 입력받아 어떤 붓꽃인지 예측해보도록 하겠습니다.


준비물은 붓꽃 데이터이며 > 학습 데이터 바로가기 < 에서 다운받으시면 됩니다.


데이터를 다운받아서 csv파일로 저장합니다.


데이터는 이런식으로 구성되어 있습니다.



앞 4열이 붓꽃 부위에 따른 크기, 5열이 종입니다.


즉 앞의 네 데이터를 통해 어떤 붓꽃인지 추측하는 예제입니다.


코드는 다음과 같습니다. pandas와 sklearn을 활용합니다.


import pandas as pd
from sklearn import svm, metrics
from sklearn.model_selection import train_test_split

csv = pd.read_csv("iris.csv")
data = csv[["SepalLength","SepalWidth","PetalLength","PetalWidth"]]
label = csv["Name"]

train_data, test_data, train_label, test_label = \
train_test_split(data,label)

clf = svm.SVC()
clf.fit(train_data,train_label)
results=clf.predict(test_data)

score = metrics.accuracy_score(results,test_label)


print("정답률:",score)

result=clf.predict([[5.2, 3.2, 1.1, 5.3]])
print(result)



코드 설명을 하면 iris.csv파일을 열어서 data와 label을 분리합니다. 즉 문제와 답을 분리합니다.


원천 데이터를 셔플하여 트레이닝 데이터와 테스트 데이터를 분류하여 fit과 predict를 통해 학습 및 예측을 해봅니다.


그리고 정답률을 찍어보고 실제로 5.2, 3.2, 1.1, 5.3 데이터를 입력하여 어떤 붓꽃인지 예측해보겠습니다.



대략 정답률은 94%이고 Iris-virginica라고 예측을 했네요.



반응형