26
파이썬을 이용한 머신러닝 머신러닝으로 문제를 풀려면? 파이썬을 이용해보자

파이썬을 이용한 이용해보자 풀려면 머신러닝pds21.egloos.com/.../Machine_Learning_with_Python.pdf · - 머신러닝 알고리즘 : Scikit-Learn - 머신 러닝 라이브러리

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 파이썬을 이용한 이용해보자 풀려면 머신러닝pds21.egloos.com/.../Machine_Learning_with_Python.pdf · - 머신러닝 알고리즘 : Scikit-Learn - 머신 러닝 라이브러리

파이썬을 이용한 머신러닝

머신러닝으로 문제를 풀려면?파이썬을 이용해보자

Page 2: 파이썬을 이용한 이용해보자 풀려면 머신러닝pds21.egloos.com/.../Machine_Learning_with_Python.pdf · - 머신러닝 알고리즘 : Scikit-Learn - 머신 러닝 라이브러리

머신러닝 절차

1. 문제를 정의 : 내가 원하는 결과가 무엇이고, 어떤 종류의 문제에 속하는지 파악2. 데이터를 확보해서 준비하고 전처리3. 데이터를 탐색하고 피처를 선택4. 모델을 최적화하고 검증

Page 3: 파이썬을 이용한 이용해보자 풀려면 머신러닝pds21.egloos.com/.../Machine_Learning_with_Python.pdf · - 머신러닝 알고리즘 : Scikit-Learn - 머신 러닝 라이브러리

머신러닝 절차

이 중에서도 데이터 전처리 과정이 가장 고되고 주를 차지하는 작업!데이터 전처리를 왜하는가?

- 데이터와 문제 유형에 따라 기법이 결정되며, - 데이터 품질에 따라 성능이 좌우됨

Page 4: 파이썬을 이용한 이용해보자 풀려면 머신러닝pds21.egloos.com/.../Machine_Learning_with_Python.pdf · - 머신러닝 알고리즘 : Scikit-Learn - 머신 러닝 라이브러리

머신러닝 절차

이 중에서도 데이터 전처리 과정이 가장 고되고 주를 차지하는 작업!데이터 전처리를 왜하는가? 어떻게 하는가?

- 계산하기 위해 수치화 되어야 함 → 데이터형에 따라 적절한 변형이 필요함- 수치 데이터, 텍스트 데이터, 이미지 데이터, 음성 데이터, 복합 데이터(ex. 비디오+자막)

Page 5: 파이썬을 이용한 이용해보자 풀려면 머신러닝pds21.egloos.com/.../Machine_Learning_with_Python.pdf · - 머신러닝 알고리즘 : Scikit-Learn - 머신 러닝 라이브러리

머신러닝 절차

이 중에서도 데이터 전처리 과정이 가장 고되고 주를 차지하는 작업!데이터 전처리를 왜하는가? 어떻게 하는가?

- 카테고리 데이터를 학습 가능하도록 표현할 필요 있음 → 원-핫 인코딩 방식으로 표준화하여 사용

Page 6: 파이썬을 이용한 이용해보자 풀려면 머신러닝pds21.egloos.com/.../Machine_Learning_with_Python.pdf · - 머신러닝 알고리즘 : Scikit-Learn - 머신 러닝 라이브러리

머신러닝 절차

이 중에서도 데이터 전처리 과정이 가장 고되고 주를 차지하는 작업!데이터 전처리를 왜하는가? 어떻게 하는가?

- 데이터에 치우침이 있는 경우 학습 효율이 나빠짐 → 표준화/정규화하여 사용

Page 7: 파이썬을 이용한 이용해보자 풀려면 머신러닝pds21.egloos.com/.../Machine_Learning_with_Python.pdf · - 머신러닝 알고리즘 : Scikit-Learn - 머신 러닝 라이브러리

머신러닝 절차

이 중에서도 데이터 전처리 과정이 가장 고되고 주를 차지하는 작업!데이터 전처리를 왜하는가? 어떻게 하는가?

- 이런 일련의 과정을 파이썬 도구로 간편하게 수행할 수 있음

Page 8: 파이썬을 이용한 이용해보자 풀려면 머신러닝pds21.egloos.com/.../Machine_Learning_with_Python.pdf · - 머신러닝 알고리즘 : Scikit-Learn - 머신 러닝 라이브러리

유용한 파이썬 도구들

데이터 전처리에 유용한 파이썬 도구들

- 수학적 기능 : NumPy- 숫자 계산을 수행하기 위한 라이브러리- 기본 계산 기능을 가진 다차원 배열과 선형대수학 함수 지원

- 데이터 처리 및 가공 : Pandas- 고성능의 데이터 구조와 데이터 분석 툴을 제공- 통합된 인덱싱과 함께 데이터 조작이 가능한 DataFrame 객체를 지원- DataFrame 구조는 유연한 방법들로 작업이 가능한 스프레드시트와 같음

- 재구조화하고, 행과 열을 추가하거나 제거하는 것을 통해 원하는 방식으로 어떤 데이터셋으로든 쉽게 변경 가능- 데이터셋 간에 계산을 하고, 병합하는 고성능의 기능을 제공

- 머신러닝 알고리즘 : Scikit-Learn- 머신 러닝 라이브러리- 계층화, 회귀, 클러스터링, 차원 감소, 모델 선택과 전처리 같은 데이터 분석에 필요한 툴을 제공

Page 9: 파이썬을 이용한 이용해보자 풀려면 머신러닝pds21.egloos.com/.../Machine_Learning_with_Python.pdf · - 머신러닝 알고리즘 : Scikit-Learn - 머신 러닝 라이브러리

유용한 파이썬 도구들

치트 시트 첨부- Python : https://www.datacamp.com/community/tutorials/python-data-science-cheat-sheet-basics- NumPy : https://www.datacamp.com/community/blog/python-numpy-cheat-sheet- Pandas : https://www.datacamp.com/community/blog/python-pandas-cheat-sheet- Scikit-Learn : https://www.datacamp.com/community/blog/scikit-learn-cheat-sheet- 각 패키지에서 자주 사용되는 API가 정리되어 있음

Page 10: 파이썬을 이용한 이용해보자 풀려면 머신러닝pds21.egloos.com/.../Machine_Learning_with_Python.pdf · - 머신러닝 알고리즘 : Scikit-Learn - 머신 러닝 라이브러리

백문이 불여일견

Page 11: 파이썬을 이용한 이용해보자 풀려면 머신러닝pds21.egloos.com/.../Machine_Learning_with_Python.pdf · - 머신러닝 알고리즘 : Scikit-Learn - 머신 러닝 라이브러리

실습해보자 1

데이터 전처리 해보기 - Rescale Data

# Python code to Rescale data (between 0 and 1)

import pandas

import numpy

from sklearn.preprocessing import MinMaxScaler

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

names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']

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

array = dataframe.values

# separate array into input and output components

X = array[:,0:8]

Y = array[:,8]

scaler = MinMaxScaler(feature_range=(0, 1))

rescaledX = scaler.fit_transform(X)

# summarize transformed data

numpy.set_printoptions(precision=3)

print(rescaledX[0:5,:])

ref. http://www.geeksforgeeks.org/data-preprocessing-machine-learning-python/

Page 12: 파이썬을 이용한 이용해보자 풀려면 머신러닝pds21.egloos.com/.../Machine_Learning_with_Python.pdf · - 머신러닝 알고리즘 : Scikit-Learn - 머신 러닝 라이브러리

실습해보자 1

데이터 전처리 해보기 - Rescale 효과 확인하기

from sklearn.svm import SVC

x_train, x_test, y_train, y_test = train_test_split(cancer.data, cancer.target, random_state=0)

svm = SVC(C=100)

svm.fit(x_train, y_train)

print(“테스트 세트 정확도 : {:.2f}”.format(svm.score(x_test, y_test)))

# 0~1 사이로 스케일 조정

scaler = MinMaxScaler()

scaler.fit(x_train)

x_train_scaled = scaler.transform(x_train)

x_test_scaled = scaler.transform(x_test)

# 조정된 데이터로 SVM 학습

svm.fit(x_train_scaled, y_train)

# 스케일 조정된 테스트 세트의 정확도

print(“스케일 조정된 테스트 세트의 정확도 : {:.2f}”.format(svm.score(x_test_scaled, y_test)))

ref. Introduction to machine learning with python p.176

Page 13: 파이썬을 이용한 이용해보자 풀려면 머신러닝pds21.egloos.com/.../Machine_Learning_with_Python.pdf · - 머신러닝 알고리즘 : Scikit-Learn - 머신 러닝 라이브러리

실습해보자 1

데이터 전처리 해보기 - Binarize Data (Make Binary)

# Python code for binarization

from sklearn.preprocessing import Binarizer

import pandas

import numpy

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

names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']

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

array = dataframe.values

# separate array into input and output components

X = array[:,0:8]

Y = array[:,8]

binarizer = Binarizer(threshold=0.0).fit(X)

binaryX = binarizer.transform(X)

# summarize transformed data

numpy.set_printoptions(precision=3)

print(binaryX[0:5,:])

ref. http://www.geeksforgeeks.org/data-preprocessing-machine-learning-python/

Page 14: 파이썬을 이용한 이용해보자 풀려면 머신러닝pds21.egloos.com/.../Machine_Learning_with_Python.pdf · - 머신러닝 알고리즘 : Scikit-Learn - 머신 러닝 라이브러리

실습해보자 1

데이터 전처리 해보기 - Standardize Data

# Python code to Standardize data (0 mean, 1 stdev)

from sklearn.preprocessing import StandardScaler

import pandas

import numpy

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

names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']

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

array = dataframe.values

# separate array into input and output components

X = array[:,0:8]

Y = array[:,8]

scaler = StandardScaler().fit(X)

rescaledX = scaler.transform(X)

# summarize transformed data

numpy.set_printoptions(precision=3)

print(rescaledX[0:5,:])

ref. http://www.geeksforgeeks.org/data-preprocessing-machine-learning-python/

Page 15: 파이썬을 이용한 이용해보자 풀려면 머신러닝pds21.egloos.com/.../Machine_Learning_with_Python.pdf · - 머신러닝 알고리즘 : Scikit-Learn - 머신 러닝 라이브러리

실습해보자 2

Kaggle 튜토리얼 문제

- Titanic: Machine Learning from Disaster- 문제 정의 : 승객들의 정보를 이용하여 살아남을지 아닐지 예측하라- 데이터 확보, 속성 분석, 전처리 : 데이터 다운로드, train/test set 구분, 클래스를 갖는 속성 값 인코딩

(ex : Gender 문자열 값 인코딩), 빈값 처리 / 오류 제거- 데이터 탐색하고 피처 선택- 모델을 최적화하고 검증 : train / test

ref. https://github.com/mjpark03/pyconkr-2017

Page 16: 파이썬을 이용한 이용해보자 풀려면 머신러닝pds21.egloos.com/.../Machine_Learning_with_Python.pdf · - 머신러닝 알고리즘 : Scikit-Learn - 머신 러닝 라이브러리

실습해보자 2

Kaggle 튜토리얼 문제

- 문제를 읽어보자 : https://www.kaggle.com/c/titanic- 예제를 살펴보자 : https://github.com/mjpark03/pyconkr-2017/blob/master/titanic.ipynb- 직접 해보자 : open your editor- 데이터 다운로드 : https://www.kaggle.com/c/titanic/data- 데이터를 탐색하고, 가공하고, 모델을 학습시키고 , 직접 평가해보자- 결과 제출 : https://www.kaggle.com/c/titanic/submit

Page 17: 파이썬을 이용한 이용해보자 풀려면 머신러닝pds21.egloos.com/.../Machine_Learning_with_Python.pdf · - 머신러닝 알고리즘 : Scikit-Learn - 머신 러닝 라이브러리

Appendix.

Page 18: 파이썬을 이용한 이용해보자 풀려면 머신러닝pds21.egloos.com/.../Machine_Learning_with_Python.pdf · - 머신러닝 알고리즘 : Scikit-Learn - 머신 러닝 라이브러리

Appendix.

Page 19: 파이썬을 이용한 이용해보자 풀려면 머신러닝pds21.egloos.com/.../Machine_Learning_with_Python.pdf · - 머신러닝 알고리즘 : Scikit-Learn - 머신 러닝 라이브러리

Appendix.

Page 20: 파이썬을 이용한 이용해보자 풀려면 머신러닝pds21.egloos.com/.../Machine_Learning_with_Python.pdf · - 머신러닝 알고리즘 : Scikit-Learn - 머신 러닝 라이브러리

Appendix.

Page 21: 파이썬을 이용한 이용해보자 풀려면 머신러닝pds21.egloos.com/.../Machine_Learning_with_Python.pdf · - 머신러닝 알고리즘 : Scikit-Learn - 머신 러닝 라이브러리

Appendix.

Page 22: 파이썬을 이용한 이용해보자 풀려면 머신러닝pds21.egloos.com/.../Machine_Learning_with_Python.pdf · - 머신러닝 알고리즘 : Scikit-Learn - 머신 러닝 라이브러리

Appendix.

Page 23: 파이썬을 이용한 이용해보자 풀려면 머신러닝pds21.egloos.com/.../Machine_Learning_with_Python.pdf · - 머신러닝 알고리즘 : Scikit-Learn - 머신 러닝 라이브러리

Appendix.

Page 24: 파이썬을 이용한 이용해보자 풀려면 머신러닝pds21.egloos.com/.../Machine_Learning_with_Python.pdf · - 머신러닝 알고리즘 : Scikit-Learn - 머신 러닝 라이브러리

Appendix.

Page 25: 파이썬을 이용한 이용해보자 풀려면 머신러닝pds21.egloos.com/.../Machine_Learning_with_Python.pdf · - 머신러닝 알고리즘 : Scikit-Learn - 머신 러닝 라이브러리

Appendix.

Page 26: 파이썬을 이용한 이용해보자 풀려면 머신러닝pds21.egloos.com/.../Machine_Learning_with_Python.pdf · - 머신러닝 알고리즘 : Scikit-Learn - 머신 러닝 라이브러리

Appendix.

http://freecontent.manning.com/real-world-machine-learning-pre-processing-data-for-modeling/