데이터 생성 > 모델 훈련 > 회귀선 그래프 확인 순서로 진행 선형 회귀 모델 https://www.kaggle.com/werooring/ch5-linear-regression import numpy as np import matplotlib.pyplot as plt np.random.seed(0) # 시드값 고정 w0 = 5 # y절편 w1 = 2 # 회귀계수 noise = np.random.randn(100, 1) # 노이즈 ① x = 4 * np.random.rand(100, 1) # 0~4 사이 실숫값 100개 생성 (x값) ② y = w1*x + w0 + noise # y값 plt.scatter(x, y); np.random.randn(100, 1)은 표준 정규분포를 따르는 데이터 100개를 생..
훈련만 하고 검증하지 않으면 두가지 문제 발생. 1. 모델 과대적합. 훈련데이터와 테스트 데이터는 고정되어 있으므로 훈련 데이터에만 과대적합 퍼블릭 리더보드에서 높아도 프라이빗에서는 점수가 떨어진다. 2. 제출 전까지 모델 성능 확인 어려움 일일 제출 횟수 제한. 무작정 제출하기 힘든 환경. 검증 데이터를 성능 가늠이 가능하나, 훈련에 사용하지 못해 손실. 실무에서도 마찬가지. 아직 주어지지 않은 미래 데이터로 미리 테스트 불가능. 위 두 문제를 해결하기 위한 게 교차 검증 가장 일반적인 건 K 폴드 교차 검증 1. 전체 훈련 데이터를 K개 그룹으로 나눈다. 2. 그룹 하는 검증 데이터로, 나머지 K-1개는 훈련 데이터로 지정. 3. 훈련 데이터로 모델을 훈련, 검증 데이터로 평가 4. 평가점수 기록 5..
피처 스케일링은 서로 다른 피처 값의 범위(최대값 - 최솟값) 이 일치하도록 조정하는 작업 값의 범위가 데이터마다 다르면 모델 훈련이 제대로 안될 수도 있다. 단, 트리 기반 모델(랜덤 포레스트, XGBoost, LightGBM 등)은 피처 스케일링이 필요 없다. 트리 기반모델은 대소 관계에 영향을 받기 때문. 예시 : 3개의 키와 몸무게, 옷 사이즈가 있을 때, 마지막 사람은 어떤 옷의 사이즈가 더 알맞는가? S vs L 직관적으로 키와 몸무게가 가까운 지표가 당연히도 똑같은 옷 사이즈를 가질 확률이 높다. 그런데 키는 m단위고, 몸무게는 kg 단위기 때문에, 단순 더하게 되면 오차가 난다. 그래서 오류를 개선하려면 키와 몸무게 값의 범위를 같은 수준으로 맞추는 데 이 때 필요한 게 피처 스케일링. m..
모델은 문자 데이터를 인식하지 못하므로, 숫자 데이터로 바꿔주는 라벨링을 해야 한다. 레이블 인코딩 범주형 데이터를 숫자로 일대일 매핑해주는 인코딩 방식 https://www.kaggle.com/werooring/ch5-categorical-data-encoding from sklearn.preprocessing import LabelEncoder # 레이블 인코더 fruits = ['사과', '블루베리', '바나나', '귤', '블루베리', '바나나', '바나나', '사과'] # 레이블 인코더 생성 label_encoder = LabelEncoder() # 레이블 인코딩 적용 fruits_label_encoded = label_encoder.fit_transform(fruits) print('레이블 인..
오차 행렬, 로그 손실, ROC 곡선과 AUC. 오차 행렬 실제와 예측의 차이를 나타내는 행렬 TP(실제 양성 예측 양성) / +와+ FN(실제 양성 예측 음성) / +와 - FP(실제 음성 예측 양성) / -와 + TN(실제 음성 예측 음성) / -와- 정확도 실제 예측한 정확도. 즉, 전후가 같은 부호인지를 보면 된다. (TP+TN) /(TP+FN+FP+TN) 그러나 평가지표로 정확도를 사용하는 경우는 많지 않다. TN의 특수성 때문. 매일 비가 안온다고 예측해도 10일 1일꼴로 비가온다고 했을 때 정확도가 90%다. 우수성을 담보할 수 없다. 정밀도 precision = TP/(TP+FP) = 비가 실제로 온다고 예측 / (비가 실제로 온다 예측 + 예측했지만 비가 오지 않았다.) 정밀도는 음성을 ..
회귀와 분류 분류 - classification 어떤 대상을 정해진 범주에 구분해 넣는 작업. 두 개면 이진분류, 세 개 이상이면 다중분류. 회귀 - 변수가 다른 변수에 영향을 미칠 때 사용 영향을 미치는 변수를 독립변수 (independent variable) 영향을 받는 변수를 종속변수(dependent variable) 수면의 질과 공장의 재고 수준은 시험 성적, 건강에 영향을 미친다. 회귀는 독립변수와 종속변수간 관계를 모델링하는 방법. 회귀와 분류가 다른 점은 종속변수가 범주형 데이터가 아니라는 것. 회귀에서 종속변수는 수치형 데이터다. 종속변수는 예시로 Y = Ax+b 라 하는 함수로 나타내어진다. (x라는 독립변수들이 들어가면, Y라는 종속변수가 튀어나옴) 회귀 문제에서는 독립변수(피쳐)와 ..