일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 머신러닝
- cpp class
- 합성곱 신경망
- 자바
- 코드트리
- numpy 기초
- 데이터 마이닝
- NumPy
- python
- 네트워크 기초
- 넘파이 배열
- 넘파이 기초
- 코딩테스트실력진단
- cpp
- Machine Learning
- 기계학습
- Design Pattern
- 클러스터링
- 넘파이
- OOP
- ack
- 디자인 패턴
- 코테
- 파이썬
- java
- 코딩테스트
- lambda
- 데이터 분석
- 차원축소
- c++
- Today
- Total
목록Programming/Machine learning (23)
준비하는 대학생
LDA란? LDA(Linear Discriminant Analysis)는 선형 판별 분석법으로 PCA와 비슷합니다. LDA는 입력데이터의 차원을 축소하는 것이 PCA와 비슷하지만 LDA는 지도학습의 분류에 사용하기 쉽게 개별 클래스를 분별할 수 있는 기준을 최대한 유지하면서 축소합니다. PCA는 데이터의 변동성이 가장 큰 축을 찾았다면 LDA는 데이터의 결정 클래스를 최대한으로 분리할 수 있는 축을 찾는 것입니다. LDA는 특정 공간 내 클래스를 최대로 분리할 수 있는 축을 찾기 위해 클래스간 분산과 클래스 내부 분산의 비율을 최대화 하는 방식으로 차원을 축소합니다. 즉, 같은 클래스 끼리는 뭉쳐있고, 다른 클래스와의 거리를 최대화 하게 하여 분류하기 쉬운 차원으로 축소하는 것입니다. LDA를 구하는 방..
정확도 정확도란? 실제 데이터에서 예측 데이터가 얼마나 같은지 판단하는 지표 $$ 정확도 = \frac{예측\ 결과가\ 동일한\ 데이터\ 건수}{전체\ 예측\ 데이터\ 건수} $$ 정확도 지표의 이진분류 모델 성능 왜곡 import numpy as np from sklearn.metrics import accuracy_score, confusion_matrix, precision_score, recall_score # 예를 들어, 데이터셋에 클래스 1이 5개, 클래스 0이 95개 있는 경우 y_true = [0] * 95 + [1] * 5 y_pred = [0] * 100 # 모델이 항상 0으로만 예측 # 정확도 계산 accuracy = accuracy_score(y_true, y_pred) print(..
로지스틱 회귀란 일반적인 선형 회귀는 연속적인 값을 예측하는 데 사용되지만, 로지스틱 회귀는 이진 분류 문제(binary classification)를 해결하는 데 적합합니다. 예를 들어, 이메일이 스팸인지 아닌지, 환자가 특정 질병을 가지고 있는지 여부 등을 판별할 수 있습니다. 동작 원리 선형 결합: 우선, 입력 특성들과 각 특성에 대응하는 가중치들을 곱한 값을 모두 합하여 선형 결합(Linear Combination)을 구합니다. $$ z = b+x_1w_1+x_2w_2+...+x_nw_n $$ 여기서 w는 기울기, x는 특성 값입니다. b 는 절편(편향,bias)입니다. Logit을 확률로 변환: 이 선형 결합 값을 Logit 함수의 역함수인 Sigmoid 함수에 통과시켜서, 0과 1 사이의 확..
선형회귀란? 선형회귀는 종속 변수 y와 하나 이상의 독립 변수(또는 설명 변수) X와의 선형 상관 관계를 모델링하는 회귀분석 기법입니다. 즉, 데이터를 가장 잘 대표하는 직선을 찾는 것이 목적입니다. 이때, 직선은 기울기와 절편을 가지며, 이를 통해 새로운 데이터에 대해 y 값을 예측하는 데 사용할 수 있습니다. 수식으로 표현하면, y = wx + b와 같이 나타낼 수 있습니다. 여기서 y는 종속 변수, x는 독립 변수, w는 가중치(기울기), b는 절편입니다. 회귀분석 모델의 종류 단순회귀분석(Simple Regression Analysis) : 독립 변수가 1개인 회귀분석 (Y=b+wx+ϵ) 다중회귀분석(Multiple Regression Analysis) : 독립 변수가 여러 개인 회귀분석 (Y=b..
에이다부스트(AdaBoost) 에이다부스트는 Adaptive Boosting의 줄임말로, 약한 학습기를 순차적으로 학습시키면서 이전 모델들이 잘못 분류한 데이터에 대해 가중치를 조정해 나가는 방법입니다. 가중치 부여: 처음에는 모든 데이터 샘플에 동일한 가중치가 부여됩니다. 학습 및 가중치 업데이트: 각 학습기가 순차적으로 학습하면서, 잘못 분류된 데이터 샘플들의 가중치를 높이고, 올바르게 분류된 데이터 샘플들의 가중치를 낮춥니다. 최종 예측: 모든 학습기가 학습을 마친 후, 학습기들의 예측을 가중합하여 최종 예측을 만듭니다. 에이다부스트(AdaBoost) 동작 원리 AdaBoost는 아래와 같은 순서로 동작합니다: 데이터셋의 각 샘플에 동일한 가중치가 부여됩니다. 초기 가중치는 1/N으로 설정되며, N..
앙상블 학습(Ensemble Learning)이란? 앙상블 학습은 여러 개의 기본 학습 모델을 조합하여 더 강력한 모델을 만드는 기법입니다. 비유를 들자면, 한 명의 전문가의 의견보다 여러 명의 전문가들의 의견을 종합한 쪽이 더 신뢰성이 높을 수 있다는 원리와 비슷합니다. 앙상블 학습의 주요 기법들 1. 보팅(Voting) 보팅은 여러 개의 다른 종류의 기본 모델들의 예측을 결합하는 가장 간단한 형태의 앙상블 학습입니다. 보팅은 크게 두 가지로 나뉩니다. (같은 데이터를 다른 모델들로 예측) 하드 보팅(Hard Voting): 각 모델의 예측 결과를 투표로 취합하여 가장 많은 표를 얻은 결과를 최종 예측값으로 사용합니다. 소프트 보팅(Soft Voting): 각 모델의 예측 확률을 평균내어, 가장 높은 ..
교차 검증 교차 검증은 데이터를 여러 부분으로 나누고, 각 부분을 훈련과 테스트 용도로 번갈아 사용하여 모델을 평가하는 방법입니다. 이를 통해 모델의 일반화 성능을 더 정확하게 측정할 수 있습니다. 특징 훈련데이터가 많지 않을 때 사용합니다. 훈련 데이터 (training data)로 학습하고 테스트 데이터(test data)로 평가하는 경우, 해당 테스트 데이터에만 과적합되는 모델이 생성되어 일반화 성능이 떨어집니다. 훈련 데이터 (training data)에서 검증 데이터(validation data)를 떼어내어 모형을 검증하는 과정을 여러 번 반복합니다. K-폴드 교차 검증 K-폴드 교차 검증은 데이터셋을 K개의 부분(폴드)으로 나누는 방법입니다. 이 방법에서는 K번의 다른 실험을 수행하며, 매번 ..
의사결정 나무란? 의사결정 나무(Decision Tree)는 예측 모델 중 하나로, 독립 변수의 조건에 따라 종속 변수의 값을 예측하는 데 사용됩니다. 이 모델은 '나무'라는 이름처럼, 뿌리에서 시작해 각 분기점(node)에서 특정 기준에 따라 데이터를 나누고, 마지막에는 각각의 잎 노드(leaf node)로 데이터를 분류합니다. 의사결정 나무는 분류와 회귀 모두에 사용될 수 있으며, 간단하고 해석하기 쉬운 모델로 많이 사용됩니다. 작동 원리 의사결정 나무의 핵심 원리는 '불순도(impurity)'를 최소화하는 방향으로 데이터를 분할하는 것입니다. 불순도는 일반적으로 지니 계수(Gini Index), 엔트로피(Entropy), 정보 이득(Information Gain) 등을 사용해 측정합니다. 분류 기준..