데이터분석(4)
-
[9] 누락된 데이터 다루기 (파이썬 데이터분석, 머신러닝)
누락된 데이터 다루기 - 누락된 데이터는 크게 두 가지 방식으로 다룰 수 있다. 1. 누락된 데이터가 있는 표본(Row, Sample)이나 열(Column, feature)을 삭제한다. 2. 보간기법을 사용해 누락된 데이터를 예측한다. - 평균, 중간값, 빈도수, 상수 등을 사용한다. 코드를 활용해 한번 확인해보자. 0. 누락된 데이터가 포함된 데이터 프레임 생성 필요한 라이브러리 불러오기 import pandas as pd # 데이터프레임 만들 때 사용 import numpy as np # 벡터연산을 위해 사용 from sklearn.impute import SimpleImputer # 보간기법에 사용 from io import StringIO # 데이터프레임 만들 때 활용 누락된 데이터가 포함된 데이..
2021.02.05 -
[8] K-최근접 이웃(KNN) 이해하기
KNN KNN은 전형적인 게으른 학습기(Lazy learner)에 속한다. 즉, 훈련데이터에서 판별함수를 학습하는 대신 훈련 데이터셋을 메모리에 저장하여 학습을 진행한다. 덕분에 학습 과정에서 비용이 전혀 들지 않는다. 대신 예측 단계에서의 계산 비용이 높다. 메모리 기반 방식의 분류기는 수집된 새로운 훈련 데이터에 즉시 적응할 수 있다는 장점이 있다. 하지만 대규모 데이터 셋에서 작업한다면 저장 공간에 문제가 생길 수 있다. 모수 모델과 비모수 모델 모수 모델은 새로운 데이터 포인트를 분류할 수 있는 함수를 학습하기 위해 훈련 데이터셋에서 모델 파라미터를 추정(타깃을 예측)하는 모델을 말한다. 대표적인 모수 모델에는 퍼셉트론, 로지스틱 회귀, 선형 SVM이 있다. 비모수 모델은 고정된 개수의 파라미터로..
2021.01.17 -
[5] 커널 SVM을 활용한 비선형 문제 해결하기
선형 SVM과 회귀분석과 같은 알고리즘은 비선형으로 구별되는 클래스를 구분 짓지 못한다. 이때 매핑함수\(\phi\)를 활용한 커널 방식을 사용한다면 비선형 문제를 해결할 수 있다. 매핑 함수를 활용해 원본 특성의 비선형 조합을 선형적으로 구분되는 고차원 공간에 투영시키고 이 공간에서의 초평면을 구분한 뒤 다시 원본 특성 공간으로 돌리면 비선형 결정 경계를 구분 지을 수 있게 된다. Ex) \(\phi(x_1,x_2) = (z_1,z_2,z_3) = (x_1,x_2,x_1^2+x_2^2)\) '2차원 -> 3차원 -> 2차원'의 투영 과정을 통해 결정 경계를 정의할 수 있다. 다만 매핑 함수의 문제점은 새로운 특성을 만드는 계산 비용이 매우 비싸다는 점이다. 특히 고차원 데이터일 경우에는 계산 비용이 더..
2021.01.04 -
[1] 퍼셉트론(Perceptron) 구현해보기
요즘 머신러닝 교과서 with 파이썬, 사이킷런, 텐서플로라는 책을 보면서 공부하고 있어요. 사실 전에 전공수업들을 때 교재여서 과제 제출할 때 참고하는 용도로 읽다가 종강한 뒤에는 책을 안폈어요. ㅎㅎ... 그러다가 최근에 텐서플로에 대해서 알아볼 게 있어서 읽어봤는데 생각보다 자세하고 이해하기 쉽게 써있더라고요. 그래서 이번 기회에 정리하면서 제대로 공부하려고 합니다. 우선 첫 챕터는 머신러닝의 종류와 개념들, 그리고 머신러닝의 작업 흐름에 대해서 설명해요. 수업 시간에 많이 다뤘던 내용이라 이 부분은 한 번 읽고 넘겼습니다! 나중에 기회가 된다면 해당 내용도 다뤄보도록 할게요. 두 번째 챕터는 퍼셉트론을 활용해서 간단한 분류 알고리즘을 직접 만들어보는건데, 읽다가 흥미로워서 정리할 겸 코드를 짜봤습..
2020.12.31