목록AI (99)
우노

주성분 분석(PCA, Principal Component Analysis) 데이터의 차원이 커지면 커질수록 계산 복잡도와 정확도가 떨어진다. 다차원 데이터를 설명할 수 있는 핵심 축을 찾는다면, 작은 차원으로 모든 데이터를 설명할 수 있다. 데이터를 작은 차원으로 줄이는 방법 중 한 가지가 PCA이다. 차원 축소 차원 축소 방법 데이터가 아래와 같이 구성되어 있을 때, 어떤 차원으로 축소할 수 있을까? 방법 1) 아무 차원이나 지운다. 차원을 지운 후, 나머지 데이터를 사영시켰을 때, 분산을 최대화 하는 축을 사용한다. 방법 2) 기존의 축이 아닌 새로운 축을 찾는다 ⇒ 주 성분 찾기 기존의 축이 아닌 새로운 축에 사영해, 분산을 최대로 하는 축을 구한다. 축은 어떻게 구하는가? 아무 축이나 찾고, 분산..
import numpy as np import pandas as pd from sklearn.linear_model import LinearRegression from sklearn.metrics import r2_score from sklearn.model_selection import train_test_split # 데이터 input_df = pd.read_csv('./spark-memory.csv') # 데이터에서 feature, target 분리 feature_df = input_df[['matrix_dimension','left_nnz','right_nnz']] target_df = input_df['왼쪽, 오른쪽 희소행렬 저장&..

비지도 학습 비지도 학습이란, 입력 데이터에 대한 출력 값(정답) 없이, 오직 입력 데이터만으로 학습을 진행한 뒤, 데이터로부터 유의미한 정보를 추출하는 머신러닝 기법입니다. 주요 기술 군집화(Clustering) 유사한 데이터들을 그룹화하는 작업 비정상 탐지(Anomaly detection) 예상치 못한 이벤트 또는 결과를 식별하는 작업 차원 축소(Dimension reduction) 고려해야하는 Feature 의 개수를 줄이는 작업 상관관계가 있는 여러 Feature 를 하나로 합치는 작업 K-Means Clustering K-Means Clustering 은 Clustering 기법 중 하나이며, K 는 데이터를 몇 개의 클러스터로 분할할지를 의미합니다. 알고리즘 순서 임의로 k 개의 중심점(cen..

이진 분류란? 이진 분류란, 문제에 대한 정답을 두 가지 답 중 하나로 분류하는 것을 의미한다. 예를 들어, 문제에 대한 정답이 0 과 1 중 하나라면, 해당 문제에 대한 정답이 1 일 확률이 출력되고, 해당 확률이 0.5 이상이면 1 로 판단한다. 이러한 이진 분류 문제를 해결하기 위한 회귀 분석 중 하나가, Logistic Regression 이다. Logistic Regression 은, 가설 함수로 시그모이드 함수를 사용하며 비용 함수로는 Binary Cross Entropy 를 사용한다. https://wooono.tistory.com/122 다중 분류란? 다중 분류란, 문제에 대한 정답을 세 가지 이상의 답 중 하나로 분류하는 문제이다. 다중 분류 문제에도, 이진 분류에서 사용된 시그모이드 함..

이진 분류(Binary Classification) 이진 분류란, 문제에 대한 정답을 두 가지 답 중 하나로 분류하는 것을 의미한다. 예를 들어, 문제에 대한 정답이 0 과 1 중 하나라면, 해당 문제에 대한 정답이 1 일 확률이 출력되고, 해당 확률이 0.5 이상이면 1 로 판단한다. 그렇다면, 이진 분류 문제는 선형 회귀(Linear Regression)로 해결 할 수 있을까? 선형 회귀는 아래 그림과 같이, Outlier(이상치)에 약하기 때문에 분류 문제에 잘 동작하지 않는다. 따라서, 이러한 이진 분류 문제를 해결하기 위한 회귀 방법 중 하나가, 로지스틱 회귀(Logistic Regression)이다. 로지스틱 회귀(Logistic Regression) 가설(Hypothesis) 선형 회귀(Li..

의사 결정 트리 (Decision Tree) 먼저, 의사 결정 트리 (decision tree)의 개념부터 다뤄보겠습니다. 의사 결정 트리는, 특정 Feature 에 대한 질문을 기반으로 데이터를 분리하는 방법입니다. 사람들이 일상생활에서 어떠한 의사 결정을 내리는 과정과 매우 비슷합니다. 건강 위험도를 결정하는 의사 결정 트리로 예를 들어 보겠습니다. 어떠한 사람에 대한 정보(feature)가 주어졌을 때, “흡연자인지, 몇살인지, 다이어트는 하고 있는지” 등의 질문을 통해, 해당 사람을 논리적으로 분리할 수 있게 됩니다. 랜덤 포레스트 (Random Forest) 이제 Random Forest 에 대해서 다뤄보겠습니다. Forest(숲)은 무엇으로 이루어져 있을까요? 나무입니다. 수많은 나무가 한군데..

Support Vector Machine 이란? 분류(classification), 회귀(regression), 특이점 판별(outliers detection) 에 쓰이는 지도 학습 머신 러닝 방법 중 하나이다. SVM 의 종류 scikit-learn 에서는 다양한 SVM 을 지원한다. SVC Classification 에 사용되는 SVM 모델을 의미하며, SVM 의 끝문자인 M 을 Classification 의 첫 문자인 C 로 바꾼 것이다. SVR Regression 에 사용되는 SVM 모델을 의미하며, SVM 의 끝문자인 M 을 Regression 의 첫 문자인 R 로 바꾼 것이다. 특이점 판별(outlier detection) 에는 OneClassSVM 이 사용된다. SVC (Support Vec..
sklearn에서 boston data 가져오기 import numpy as np import pandas as pd from sklearn.datasets import load_boston boston = load_boston() # boston data로 feature 생성 data = pd.DataFrame(boston.data, columns=boston.feature_names) # boston data의 target 값도 추가 data['MEDV'] = pd.Series(data=boston.target, index=data.index) feature, target 정의 및 훈련, 테스트 데이터 분리 # feature 값 정의 feature = data.drop('MEDV..

기본 선형 회귀란? 기본 선형 회귀 분석에서는 독립변수 (X)와 종속 변수 (Y)의 최적화 된 선형 관계를 설명하기 위해 적절한 가중치(weight)와 편향(bias)을 찾습니다. NNLS (Non-Negative Least Squares) 회귀란? 이때, NNLS는 가중치(weight)가 음수가 되는 것을 허용하지 않는 수학적 최적화 기술입니다. 독립변수 X와 종속 변수 Y가 주어졌을 때 최적화 하고자 하는 식 여기서 b ≥ 0 은 벡터 b 의 각 성분이 음수가 아니어야 함을 의미하고 ‖ · ‖₂ 는 Euclidean norm 을 나타냅니다 . 즉, 유클리드 표준 값을 최소로 하며 양수값을 가지는 가중치(weight)를 찾는 것 입니다. 간단한 예제 코드 제공하는 독립변수와 종속변수 60 b1 + 90..

교차 검증이란? 보통은 train set 으로 모델을 훈련, test set으로 모델을 검증한다. 여기에는 한 가지 약점이 존재한다. 고정된 test set을 통해 모델의 성능을 검증하고 수정하는 과정을 반복하면, 결국 내가 만든 모델은 test set 에만 잘 동작하는 모델이 된다. 즉, test set에 과적합(overfitting)하게 되므로, 다른 실제 데이터를 가져와 예측을 수행하면 엉망인 결과가 나와버리게 된다. 이를 해결하고자 하는 것이 바로 교차 검증(cross validation)이다. 교차 검증은 train set을 train set + validation set으로 분리한 뒤, validation set을 사용해 검증하는 방식이다. 교차 검증의 장점과 단점 장점 모든 데이터셋을 훈련에..