목록AI/Machine Learning (48)
우노
Permutation Importance 란? Permutation Importance 는, 모델 예측에 가장 큰 영향을 미치는 Feature 를 파악하는 방법입니다. Permutation Importance 는 모델 훈련이 끝난 뒤에 계산되며, 훈련된 모델이 특정 Feature 를 안 썼을 때, 이것이 성능 손실에 얼마만큼의 영향을 주는지를 통해, 그 Feature 의 중요도를 파악하는 방법입니다. 또한, 어떤 모델이든 적용할 수 있습니다. Permutation Importance 의 장점 Permutation Feature Importance 의 중요한 특징이자 장점은, 모델을 재학습 시킬 필요가 없다는 것입니다. 기존에는 특정 Feature 를 제거하고 모델을 재학습해서 중요도를 파악하는 방법도 있..
Linear Regression 이란? Linear Regression 은 선형 회귀이며, 선형 방정식은 아래 공식으로 표현할 수 있습니다. y = ax + b 하지만, 아래 그림처럼, 데이터가 비선형적으로 분포하고 있을 땐, 선형 회귀 모델의 오차는 커지게 됩니다. 따라서 만약, 데이터가 2차원 곡선 형태로 분포되어 있다면, 2차원 곡선 모델로, 3차원 곡선 형태로 분포되어 있다면, 3차원 곡선 모델로 접근하는 것이 오차를 줄이는 방법일 수 있습니다. Polynomial Regression 이란? Polynomial Regression 은 다항 회귀이며, 다항 방정식은 아래 공식으로 표현할 수 있습니다. 따라서, 데이터가 비선형적으로 분포하고 있을 땐, 아래 그림과 같이, 비선형 회귀 모델의 오차가 적..
Train Set 생성 from sklearn.feature_extraction.text import TfidfVectorizer import pandas as pd # TfidfVectorizer 객체 생성 vectorizer = TfidfVectorizer() # TfidfVectorizer 할 X_train 데이터 X_train = ['I go to my home my home is very large', 'I went out my home I go to the market'] # vectorizer는 X_train에 등장하는 단어를 통해 단어 사전을 생성한 뒤, # 해당 단어 사전을 사용해 X_train를 TfidfVectorizer 한다. # 따라서, vec_X_tr..
Anomaly Detection(이상 탐지)이란? Anomaly Detection(이상 탐지)이란 전체 데이터에서 다른 패턴을 보이는 데이터를 찾는 것을 말한다. 다른 패턴을 보이는 데이터를 이상값(anomaly)라고 부르며, 이상 탐지는 사기 탐지, 침입 탐지, 안전 관리를 포함한 다양한 분야에 널리 활용된다. Anomaly Detection 은 정답 label 이 주어졌냐, 안 주어졌냐에 따라 지도학습이나 비지도학습으로 진행된다. 비지도 학습을 통해 진행하는 Anomaly Detection 의 종류는 아래와 같다. Isolation Forest One Class SVM Etc 따라서, 해당 포스트는 Anomaly Detection 의 비지도 학습 알고리즘 중 하나인, Isolation Forest에 ..
Feature Selection이란? Feature Selection은 ML에 있어서 매우 중요한 기술입니다. Feature Selection의 기본적인 아이디어는, 모델링 시 raw data의 모든 feature를 사용하는 것은 computing power와 memory 측면에서 매우 비효율적이기 때문에, 일부 필요한 feature만 선택해서 사용하자는 것입니다. 어떻게 보면, Feature Selection은 여러분의 모델 성능을 높이기 위해서 반드시 필요한 기술 중 하나입니다. Feature Selection은 Feature Engineering, Feature Extraction과 유사하지만, 표현 자체는 구분되며, 간단하게 정리하면 아래와 같습니다. Feature Engineering : 도메인..
XGBoost는 내장함수 또는 pickle, joblib 모듈을 사용해 모델을 저장/불러오기 할 수 있습니다. 내장 함수 import xgboost as xgb # 모델 정의 및 학습 xgb_model = xgb.XGBRegressor(**param).fit(trainData.features, trainData.labels) # 파일명 filename = 'xgb_model.model' # 모델 저장 xgb_model.save_model(filename) # 모델 불러오기 new_xgb_model = xgb.XGBRegressor() # 모델 초기화 new_xgb_model.load_model(filename) # 모델 불러오기 pickle import pickle # 모델 정의 및 학습 ..
기계학습에서 모델이나 패턴의 분류 성능 평가에 사용되는 지표들을 다루겠습니다. 어느 모델이든, 발전을 위한 feedback은 현재 모델의 performance를 올바르게 평가하는 것에서부터 시작합니다. 모델이 평가해야하는 요소와 그것을 수치화한 지표들, 그리고 관련 개념들에 대해서 다루도록 하겠습니다. 모델의 분류와 정답 모델을 평가하는 요소는 결국, 모델이 내놓은 답과 실제 정답의 관계로써 정의를 내릴 수 있습니다. 정답이 True와 False로 나누어져있고, 분류 모델 또한 True False의 답을 내놓습니다. 그렇게 하면, 아래와 같이 2x2 matrix로 case를 나누어볼 수 있겠네요. 이제 각 case별로 살펴보겠습니다. True Positive(TP) : 실제 True인 정답을 True라고..
Bayes error 달성할 수 있는 가장 낮은 예측 오차로써, 축소할 수 없는 오류와 동일하다. Training error 훈련 데이터의 에러를 말한다. Dev error 검증 데이터의 에러를 말한다. Avoidable bias bayes error와 training error의 차이를 말한다. Variance training error와 dev error의 차이를 말한다.
Multi-Task Learning Multi-Task Learning이란, 하나의 신경망이 여러 작업을 동시에 할 수 있도록 학습하는 것입니다. 신경망 초기 특성들이, 서로 공유(shared low-level features)될 수 있다고 하면, 하나의 신경망을 학습시키는 것이 여러 신경망을 개별 학습시키는 것 보다 효율적입니다. 예를 들어, 사진이 주어졌을 때, 신호등, 보행자, 차량, 표지판을 감지하는 문제가 있다면 이 특성들은 모두 도로의 특성을 가지고 있기 때문에, 서로 공유 될 수 있습니다. Multi-Task Learning은 아래의 상황에서 많이 쓰입니다. 여러 문제들의 하나의 저레벨 특성을 공유할 때 ex) Computer Vision의 물체 감지 데이터가 비슷할때 (항상 만족하는 것은 ..
Sklearn cross_val_score() 사용 시, 이미 존재하는 많은 scoring 방법들을 사용할 수 있지만 경우에 따라 직접 scoring을 만들어 사용하고 싶을 때가 있다. 이 때, 다음과 같이 Custom Scoring을 만들어 사용할 수 있다. Custom Scoring 함수 생성 from sklearn.metrics import r2_score, mean_squared_error def mean_absolute_percentage_error(y_test, y_pred): y_test, y_pred = np.array(y_test), np.array(y_pred) return np.mean(np.abs((y_test - y_pred) / y_test)) * 100 def custom_sc..