티스토리 뷰

반응형

본 글은 http://machinelearningmastery.com/machine-learning-in-python-step-by-step/

의 글을 토대로 번역아닌 번역과 함께 필자가 따라해보며 쓴 글임.
보다 자세한 설명이나 원문을 보고싶으신분은 위의 링크를 통해 보시길 추천합니다.



파이썬이 준비되었으면 iris flowers 라는 데이터셋을 가지고 여러가지를 해보자.

*참고 : Iris flower data set WIKI

( 이 데이터셋은 기계학습 및 통계에서 마치 프로그램 언어의 "hello world" 와 같이 쓰인다고 함  )  

먼저 모든 모듈들을 import 해서 이상이없는지 체크를 해보자.


load_dataset.py 라는 파일을 만들어 다음 코드를 넣는다.

# Load libraries

import pandas

from pandas.tools.plotting import scatter_matrix

import matplotlib.pyplot as plt

from sklearn import model_selection

from sklearn.metrics import classification_report

from sklearn.metrics import confusion_matrix

from sklearn.metrics import accuracy_score

from sklearn.linear_model import LogisticRegression

from sklearn.tree import DecisionTreeClassifier

from sklearn.neighbors import KNeighborsClassifier

from sklearn.discriminant_analysis import LinearDiscriminantAnalysis

from sklearn.naive_bayes import GaussianNB

from sklearn.svm import SVC



저장하고 나와서 python load_dataset.py 를 실행해서 에러가 나지 않는지 체크해본다.

이런... 에러가 나왔다.


시키는대로 하자.

sudo apt-get install python-tk


그리고 다시 실행했을때 아무런 메시지가 안나와야 비로소 다음 단계로 진행 할 수 있다.


다시 load_dataset.py 파일을 열어 마지막 줄에 다음 코드를 이어 붙인다.


iris flowers 데이터셋 파일을 로드하기 위한 코드이다.


# Load dataset

url = "https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data"

names = ['sepal-length', 'sepal-width', 'petal-length', 'petal-width', 'class']

dataset = pandas.read_csv(url, names=names)

여기까지 작성한 코드를 전체 복사한후, 저장하고 닫는다.


다음 과정부터는 하나씩 자주 출력해볼것이기 때문에 python console 에서 진행할것이다. 

쉘에서 python 을 입력후 파이썬 콘솔에서 위의 복사한 코드를 붙여넣기 한다.


 

이후 로드한 데이터셋을 다음 몇가지 방법으로 좀 살펴보도록 하자.


1. 데이터셋의 크기를 구해보자.

>>> print(dataset.shape) 

(150, 5)   

행렬이다( 150 x 5 ) 


 2. 상위 20개 데이터를 뽑아보자.

>>> print(dataset.head(20))

sepal-length  sepal-width  petal-length  petal-width        class

0            5.1          3.5           1.4          0.2  Iris-setosa

1            4.9          3.0           1.4          0.2  Iris-setosa

2            4.7          3.2           1.3          0.2  Iris-setosa

3            4.6          3.1           1.5          0.2  Iris-setosa

4            5.0          3.6           1.4          0.2  Iris-setosa

5            5.4          3.9           1.7          0.4  Iris-setosa

6            4.6          3.4           1.4          0.3  Iris-setosa

7            5.0          3.4           1.5          0.2  Iris-setosa

8            4.4          2.9           1.4          0.2  Iris-setosa

9            4.9          3.1           1.5          0.1  Iris-setosa

10           5.4          3.7           1.5          0.2  Iris-setosa

11           4.8          3.4           1.6          0.2  Iris-setosa

12           4.8          3.0           1.4          0.1  Iris-setosa

13           4.3          3.0           1.1          0.1  Iris-setosa

14           5.8          4.0           1.2          0.2  Iris-setosa

15           5.7          4.4           1.5          0.4  Iris-setosa

16           5.4          3.9           1.3          0.4  Iris-setosa

17           5.1          3.5           1.4          0.3  Iris-setosa

18           5.7          3.8           1.7          0.3  Iris-setosa

19           5.1          3.8           1.5          0.3  Iris-setosa



3. 각 속성별 통계를 살펴보자.

>>> print(dataset.describe())

       sepal-length  sepal-width  petal-length  petal-width

count    150.000000   150.000000    150.000000   150.000000

mean       5.843333     3.054000      3.758667     1.198667

std        0.828066     0.433594      1.764420     0.763161

min        4.300000     2.000000      1.000000     0.100000

25%        5.100000     2.800000      1.600000     0.300000

50%        5.800000     3.000000      4.350000     1.300000

75%        6.400000     3.300000      5.100000     1.800000

max        7.900000     4.400000      6.900000     2.500000



4. Class별 분포도를 살펴보자.

>>> print(dataset.groupby('class').size())

class

Iris-setosa       50

Iris-versicolor   50

Iris-virginica     50




3번의 통계 요약은 정말 놀라울 따름이다.

기존 언어에서는 한줄한줄 그룹핑 해서 계산해줘야하는걸 명령어 하나로 다양한 결과를 볼수있는게 그저 놀라울 따름이다.. 

 

여기까지 데이터셋을 불러와 살펴보는 단계를 마치고, 다음에는 위의 데이터들을 토대로 시각화를 해보도록 하자.


.........는 다음 포스트로~ 


반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함