본문 바로가기

CS22

신경망 기본구조와 구현 1. 퍼셉트론과 XOR Problem 퍼셉트론(Perceptron)은 가장 단순한 인공신경망 구조입니다. 위와 같이 입력값 \(x_1, x_2, ... \) 에 대해 가중치 \(w_1, w_2, ... \) 들의 선형결합으로 이루어진 구조입니다. 일반화된 식으로, \(\textbf{y}=f(\textbf{w}^T\textbf{x}+b) \) 로 정리할 수 있습니다. 기본적인 퍼셉트론으로도 간단한 분류를 잘 수행할 수 있습니다. 대표적인 예로 AND 게이트를 분류해봅시다. 위 그림처럼 직선 1개로 AND결과가 0인 점 3개와 1인 점 1개를 분리해내는데 성공합니다. 하지만 XOR 의 경우 직선 1개로는 분리가 불가능합니다. 2. 다층 퍼셉트론의 등장 이 때, 층 1개를 추가하여 쉽게 해결할 수 있습니다. .. 2023. 3. 18.
머신러닝 이상치 (outlier) 제거하기 머신러닝에서 이상치를 제거해야 예측성능을 높일 수 있습니다. 예를 들어 몇년치 자전거 이용 수요를 예측하는데 어떤 하루가 자전거 대회가 열렸던 날이라면 그 날을 제거하고 모델을 테스트하는게 타당합니다. 한 이상치로 인해 다양한 예측지표나 계산값에 악영향을 미치기 때문입니다. 이상치 제거로 자주 쓰이는 방법은 IQR 방식입니다. IQR은 사분위 값의 편차를 이용하여 이상치를 걸러내는 방법입니다. '사분위' 란 전체 데이터를 정렬하여 이를 4등분합니다. 이 구간을 Q1(25%), Q2(50%), Q3(75%), Q4(100%) 라 하면 IQR는 Q3 - Q1 가 됩니다. 이제 IQR에 가중치 w를 곱하여 일반적인 데이터의 최대와 최소 범위를 정해줍니다. 주로 w=1.5를 사용하며, 일반적인 최댓값을 Q3+I.. 2023. 2. 18.
XGBoost, LightGBM 사용과 하이퍼파라미터 XGBoost와 LightGBM은 엄청난 성능을 자랑하는 앙상블 알고리즘입니다. 이 둘은 모두 사이킷런 전용 클래스가 있습니다. 사이킷런 전용 클래스는 fit과 predict, score등 직관적이고 일관화된 모델훈련&평가식을 제공하므로 사이킷런 전용 클래스를 사용합니다. 1. XGBoost의 주요 파라미터 n_estimators: 훈련횟수를 의미합니다. 훈련을 너무 많이 해도 과적합이 될 수 있습니다. learning_rate: 학습률을 의미합니다. 0~1사이 값이며, 주로 0.01에서 0.2정도사이에서 결정합니다. 다른 하이퍼 파라미터를 조정후 미세하게 조정하며 성능을 올리기도 합니다. min_child_weight: 트리에서 가지를 칠지 결정하는 가중치의 합입니다. 과적합을 제어하는 주요 하이퍼 파.. 2023. 2. 11.
머신러닝 자주 쓰이는 함수 정리 * 공부하면서 계속 업데이트합니다 1. train_test_split train_test_split은 훈련데이터와 테스트데이터를 나눠주는 함수입니다. 기본변수는 X, y, test_size 비율, random_state 가 있습니다. from sklearn.model_selection import train_test_split X_train, X_test,y_train, y_test=train_test_split(X, y, test_size= , random_state= ) 2. KFold 회귀에서 교차검증시 사용합니다. KFold(n_splits=~)꼴로 객체를 생성하면, splits 개수만큼 fold를 나눠서 수행하게 됩니다. 나뉜 fold를 보기 위해선 kfold.split()를 사용하면 됩니다. .. 2023. 2. 5.