목록ML(Machine Learning) (25)
Hippo's data
오늘은 데이터 전처리 과정중 하나인 스케일링(Scaling)에 대해 알아보겠습니다 여러 변수에 있는 각 수치형 데이터는 상대적 크기에 따라서 모델 생성에 영향을 끼칠 수 있는데요 쉬운 예시로 0~10의 값을 가지는 변수 A와 0~100의 값을 가지는 변수 B가 있을 때, 각 변수의 의미를 모르는 컴퓨터는 상대적으로 큰 숫자를 가지는 변수 B의 영향을 크게 반영합니다 그러므로 변수간 상대적인 크기를 조정해야할 필요가 있는데요 이것이 바로 스케일링(Scaling)입니다!! 1. 정규화(normalization) -> 데이터의 범위를 0~1로 조정 X = ( X_i(i번째 데이터) - X_min(X의 최솟값) ) / ( X_max(X의 최댓값) - X_min(X의 최솟값) ) - 직접 계산 df = (df -..
오늘은 범주형 데이터를 정제하는 방법(범주형 인코딩)에 대해 알아보겠습니다!!! 범주형 데이터란 성별(남, 여) / 혈액형(A,B,O,AB형) 처럼 범주로 구분된 데이터를 의미하는데요 컴퓨터는 남자, 여자와 같은 범주값을 그대로 이해하지 못하므로 1, 0과 같은 수치형 데이터로 변경해줘야 합니다 이렇듯 범주형 자료를 수치형자료로 변경하는 과정을 범주형인코딩(Categorical Encoding)이라고 하는데요 1.레이블인코딩 2. 원핫 인코딩 두가지 방법에 대해 알아보겠습니다 1. 레이블 인코딩(Lable Encoding) 범주 순서대로 각각 숫자를 부여하는 방식 서울 -> 0 광주 -> 1 대전 -> 2 부산 -> 3 # 단점) 의도하지 않은 순서값이 모델에 반영될 수 있음 -> 해결방안(원핫인코딩) ..

오늘은 이상치를 처리하는 방법에 대해 알아보겠습니다 # 이상치(outlier)란? 데이터의 일반적인 범주에서 크게 벗어난 값들을 의미하는데요 그렇다면 데이터의 일반적인 범주에서 벗어났다고 할 수 있는 기준이 무엇이 있을까요? 1) Z-score 확인 신뢰구간 : 모수(모집단의 값)가 실제로 포함될 것으로 예측되는 범위 신뢰수준 : 신뢰구간에 실제 평균값이 포함될 확률 일반적으로 95%의 신뢰수준을 사용함 ( Z-scroe 1.96 기준 ) Z = ( X_i(i번째 값) - X의 평균 ) / 표준편차 코드로 구현 ( 신뢰수준 95% 이상인 데이터 확인 ) -> df[(abs((df['기준 변수'] - df['기준 변수'].mean())/df['기준 변수'].std())) > 1.96] 2) IQR(Inte..

오늘은 데이터 전처리 단계에서 사용하는 결측치를 처리하는 방법에 대해 알아보겠습니다!! # 결측치(Missing value)란? 결측치란 말 그래도 비어있는 값인데요 데이터수집시 누락되거나 유실되는 등 다양한 원인에 의해 생겨납니다 특히 결측치는 데이터 분석시 반드시 처리해야하는데요 N/A, NULL, NaN등 다양하게 표현되며 파이썬에서는 NaN로 표시됩니다 1. 결측치 확인하기 df.info( ) -> 각 변수의 수, 데이터 유형 확인 / Rangeindex와 각 변수의 개수를 통해 결측치 개수 파악 df.isnull( ).sum( ) -> 각 변수마다 결측치 개수 확 2. 결측치 처리하기 -> 결측치를 처리하는 방법에는 그냥 삭제하는 방법과 다른 값으로 대체하는 2가지 방법이 있습니다 # 데이터 결..
오늘은 지도학습의 분류모델 중 나이브베이즈 분류기에 대해 알아보겠습니다 # 나이브 베이즈 분류기 Naive bayes classifier -> 베이즈 정리 기반 - 사전확률을 통한 사후확률 예측 특성간 독립적 가정 - 나이브한naive (소박한) 가정을 통해 복잡한 문제해결에 좋은 성능 발휘 단점) feature간 독립적이어야함 = feature간 상관관계 없음 -> 선형 분류기LogisticRegression, LinearSVC - Linear support vector classifier) 보다 훈련속도빠름 but 일반화 성능 bad -> 선형모델로 학습시간이 오래걸리는 큰 데이터셋에 나이브베이즈 모델 시도해보자!! -> scikit-learn에 구현되어있는 나이브베이즈 분류기 3개 -> Gaussi..

오늘은 저번에 이어서 지도학습 중 선형모델에 대해 알아보겠습니다 저번에는 회귀방식의 선형모델을 알아보았는데요 이번에는 분류 방식의 선형모델 실습을 해보도록 하겠습니다 분류용 선형모델은 이진분류Binary Classification와 다중분류Multiclass Classification로 구분할 수 있습니다 -> 임계치 0과 비교하여 방정식 값이 0보다 작으면 -1 / 크면 +1로 예측 대중적인 알고리즘 -> 로지스틱회귀 logistic regression / linear_model.LogisticRegression에 구현됨 -> 서포트 벡터 머신 support vector machine / svm.LinearSVC에 구현됨 *** 주의) 로지스틱회귀 logistic regression -> 회귀 regr..

오늘은 지도학습 중 선형모델(linear model)에 대해 알아보겠습니다 선형모델은 선형함수를 만들어 예측하는데요 회귀와 분류 두 방식 모두 이용가능합니다 그중 회귀 방식의 선형모델 실습을 해보도록 하겠습니다 y = wx + b 에서 y => 예측값 (맞출 타겟값 target) x => 각 입력특성들 (feature) w => 기울기 = 각 특성x의 가중치 b => y절편 w,b -> 모델이 학습할 파라미터 mglearn.plots.plot_linear_regression_wave() -> w[0]: 0.393906 b: -0.031804 -> wave데이터에서 학습한 선형회귀 모델의 파라미터값 -> 특성1개인 1차원 회귀 모델이므로 2차원 그래프에 표현됨 -> 특성2개 : 2차원 회귀모델(평면) ->..

이제부터 지도학습 알고리즘에 대해 알아보겠습니다 # 지도학습이란? -> 입력데이터를 통해 출력을 맞추는 것 맞추는 방식은 크게 2가지로 나뉘는데요 1. 분류 classifiaction 2. 회귀 regression # 분류classifiaction -> 여러 클래스 중 하나를 맞추는 것(예측하기) (이진binary 분류 - 두개 클래스로 분류 / 다중multicalss 분류 - 셋 이상의 클래스로 분류) 예) 스팸이메일 분류(Yes or No) / ch1의 붓꽃의 꽃잎, 꽃받침의 폭과 길이로 품종 예측 # 회귀 regression -> 연속적인 숫자(실수)를 맞추는 것 예) 교육수준, 나이, 거주지 등을 이용해 소득을 예측 # 일반화, 과대적합, 과소적합 훈련데이터를 통해 학습한 모델이 새로운 데이터도 ..