Chapter1. What is Machine Learning, Human

HA_·2024년 1월 7일

1. 머신러닝이란?

머신러닝

: 명시적인 프로그램이 아닌 데이터를 보고 프로그램이 학습하도록 하는 능력을 갖추도록 하는 것

2. Iris Classification

  • 아이리스 꽃의 품종을 맞추는 머신러닝 문제
  • 우리의 과제에서 3개의 품종에 대해 꽃잎과 꽃받침의 가로, 세로의 길이를 가지고 3가지를 구분할 수 있는지 확인함.
  • 우리의 과제는 목적은 아이리스 3개의 품종(버지칼라, 버지니카, 세토사)을 구분할 수 있는가!
  • 아래는 로널드의 iris 데이터이다.

3. 데이터관찰(python)

1) iris 데이터를 불러오기 및 확인

from sklearn.datasets import load_iris

iris = load_iris()
iris


key랑 비슷하여 keys를 확인하려 함

2) keys를 확인하니 sklearn의 datasets은 python의 dict 형과 유사하다.

iris.keys()

3) iris.DESCR

print(iris['DESCR'])
  • scikit이 제공하는 명령을 받아온 데이터들은 'DESCR' 키를 가지고 있고,
  • 이것을 열어보면 데이터 설명이 나와있음.
  • class는 우리가 맞춰야 하는 대상!(분류의 대상)
    -> 이것이 피처?(특성의 이름들이 됨.)

cf)

len(iris['target'])

4) target_names에는

print(iris['target_names'])
  • setosa'가 0번, 'versicolor'가 1번, 'virginica'가 2번

5) target에는

print(iris['target'])
  • 아래의 'target_names'에서 보는 것처럼 150개가 있음.
  • 0번-'setosa'가 50개, 1번-'versicolor'가 50개, 2번-'virginica'가 50 (아래 target_names 참고)

6) iris.data에는

iris.data
  • 데이터 확인
  • iris 데이터 첫 번째가 'target'에서 첫 번째인 '0' => setota (위에 참고)
  • iris 데이터 두 번째가 'target'에서 두 번째인 '0' => setota (위에 참고)

7) pandas 및 DataFrame으로 만들어보기

  • 데이터를 정리해서 관찰하기 유용한 도구인 pandas 사용
import pandas as pd
iris_pd = pd.DataFrame(iris.data, columns=iris.feature_names)
iris_pd.head()
  • iris.data => iris 데이터를 value로 두고
  • columns=iris.feature_names => 칼럼 이름 지정

8) 품종 정보도 column에 포함 (품종을 맞춰야 함)

iris_pd['species'] = iris.target
iris_pd.head()


9) boxplot(x='sepal length (cm)')

(1) 'sepal length'와 'speices'와의 관계를 박스플랏으로 그려서 어떤 효과가 나는지 확인하기

  • '0' -> 'setosa', '1' -> 'versicolor', '2' -> 'virginica'
# 일단 그래프 그리는 모듈 import
import matplotlib.pyplot as plt
import seaborn as sns

# 'sepal length'와 'species'와의 관계를 박스플랏으로 그려서 어떤 효과가 나는지 확인하기
plt.figure(figsize=(12, 6))
sns.boxplot(x='sepal length (cm)', y='species', data=iris_pd, orient='h');


-> 표시한 부분은 3개의 품종 다 겹쳐있음.

=> 결론

    1. 'sepal length'만 가지고는 3개의 품종을 구분하기 어렵다.
    1. 'virginica'의 아웃라이어 중 1개가 특별히 'sepal length가 작은 값을 가지고 있음.
      'virginica'의 'sepal length'는 대부분 5.6부터 7.9 사이에 있는데 유난히 1개만 떨어져 있음.

10) boxplot(x='sepal width (cm)')

(2) 'sepal width'와 'speices'와의 관계 확인하기

0개의 댓글