지식
데이터 전처리 (2. 피처 스케일링)
『파이썬 머신러닝 완벽 가이드』 도서를 공부하며 정리한 글입니다. 코드 결과는 직접 실행해보면서 결과를 보시면 좋을 것이라 생각하여 생략하였습니다. 이번 글에서는 피처 스케일링(feature scaling)의 대표적인 방법인 표준화(Standardization)와 정규화(Normalization)에 대해 소개하겠다. 피처 스케일링은 서로 다른 변수(feature)의 값 범위를 일정한 수준으로 맞추는 작업이다. 예를 들어서, 어떤 feature는 -1부터 1 사이의 값으로 구성되어 있고, 다른 feature는 0부터 100 사이의 값으로 구성되어 있는 경우이다. 서로 다른 범위의 변수들을 평균이 0이고 분산이 1인 (가우시안) 정규 분포를 가진 값으로 변환하는 것이 표준화이다. 서로 다른 범위의 변수들의 ..
데이터 전처리 (1)
『파이썬 머신러닝 완벽 가이드』 도서를 공부하며 정리한 글입니다. 코드 결과는 직접 실행해보면서 결과를 보시면 좋을 것이라 생각하여 생략하였습니다. 데이터 전처리는 ML(머신러닝) 알고리즘만큼 중요하다. 쓰레기를 넣으면 쓰레기가 나온다는 (Garbage in, Garbage out) 말이 있듯이, ML 알고리즘의 성능이 좋더라도, 어떤 데이터를 입력으로 가지느냐에 따라 결과가 매우 크게 달라질 수 있다. 그렇기 때문에 ML알고리즘을 적용하기전에 데이터에 대해 미리 처리해야할 것들이 있다. 1. 결손값(NaN) Null값이라고 하는 것인데, 이는 ML 알고리즘에 허용되지 않는다. 그렇기 때문에 무조건 결측치를 없애줘야하는데, 크게 결측치를 제거하는 방법과 대체하는 방법이 있다. (1) Null값이 얼마 되..
교차 검증
1. 사이킷런 - 사이킷런 기반 프레임워크 사이킷런(scikit-learn)은 파이썬 머신러닝 라이브러리 중 가장 많이 사용되는 대표적인 라이브러리이다. 사이킷런에서는 분류 알고리즘을 구현한 클래스를 Classifier로, 회귀 알고리즘을 구현한 클래스를 Regressor로 지칭한다. (사이킷런에서는 매우 많은 유형의 Classifier와 Regressor 클래스를 제공한다.) Classifier와 Regressor를 합쳐서 Estimator 클래스라고 부른다. (즉, 지도학습의 모든 알고리즘을 구현한 클래스를 Estimator라고 부른다.) Estimator 클래스 (내부)에서 fit()과 predict()를 구현함. - 해당 Estimator를 인자로 받는... cross_val_score()와 같은..
ndarray, 리스트, 딕셔너리와 DataFrame 상호 변환하기
일반적으로 DataFrame으로 변환 시에는 컬럼명을 지정해준다. DataFrame이 2차원 데이터(행과 열)이기 때문에, 기본적으로 2차원 이하의 데이터들만 DataFrame으로 변환될 수 있다. 1. 1차원_리스트와 ndarray(넘파이) import numpy as np import pandas as pd list1 = [1,2,3] # 1차원 리스트 array1 = np.array(list1) # 1차원 numpy ndarray col_name1 = ['col'] # 컬럼이름 리스트 # 리스트를 이용해 데이터프레임 생성 df_list1 = pd.DataFrame(list1, columns=col_name1) # ndarray를 이용해 데이터 프레임 생성 df_array1 = pd.DataFrame..
K-NN 알고리즘의 쉬운 예제
머신러닝에는 지도학습(Supervised Learning)과 비지도 학습(Unsupervised Learning)이 있습니다. 지도학습에는 최근접 이웃 (Nearest Neighbor) 나이브 베이즈 (Naive Bayes) 의사결정 트리 (Decision Trees) 분류 규칙 학습자 (Classification Rule Learners) 선형 회귀 (Linear Regression) 회귀 트리 (Regression Trees) 모델 트리 (Model Trees) 신경망 (Neural Networks) 서포트 벡터 머신 (Support Vector Machines) 이 정도가 대표적인 알고리즘입니다. 그중 KNN은 가장 고전적/직관적인 방법이라고 알려져있습니다. 또한 K-NN은 '분류'에 속하는데, 분..
퍼셉트론
『밑바닥부터 시작하는 딥러닝』 도서를 공부한 후 복습하는 글입니다. 퍼셉트론(perceptron) 알고리즘은 신경망(딥러닝)의 기원이 되는 알고리즘이다! 그렇기에 퍼셉트론의 구조를 배우는 것은 신경망과 딥러닝으로 나아가는데 중요한 아이디어가 될 것이다. 2.1. 퍼셉트론이란? - 다수의 신호를 입력받아 하나의 신호를 출력한다. 여기서 신호란 흐름이 있는 것을 의미한다. - 전류가 전선을 타고 흐르는 전자를 내보내듯, 퍼셉트론 신호도 흐름을 만들고 정보를 앞으로 전달한다. - 다만, 퍼셉트론 신호는 두가지 값 '흐른다(0) / 안흐른다(1)' 두가지 값을 가질 수 있다. ⇒ 입력으로 2개의 신호를 받은 퍼셉트론. 이라고 한다. ⇒ w1, w2는 가중치. ⇒ 입력신호가 뉴런(or 노드)에 보내질 때는 각각 ..