[머신러닝] Feature extraction
·
카테고리 없음
feature가 굉장히 많은 데이터에서는 feature를 일부만 추출해서 학습하는 것이 컴퓨팅 파워를 줄이고 성능을 높이는 방법이 될 수 있습니다. 이 글에서는 전체적인 Feature extraction 방법에 대해 언급을 하고, 개별적인 주제에 대해 자세히 설명하는 것은 다른 글로 넘기겠습니다. feature extraction 방법에는 Linear method : PCA(Principal Component Analysis), LDA, Metric Multidimensional Scaling(MDS) Non-linear method : Isomap, Locally-linear Embedding(LLE), Kernel PCA, Autoencoder 1. Principal Component Regressi..
[데이터과학] Unbalancing data 처리
·
연구 Research/데이터과학 Data Science
majority(다른 클래스에 비해 샘플 수가 많은 클래스) 샘플 수가 minority 샘플 수가 차이가 많이 나면 학습을 하는데 어려움을 겪을 수 있습니다. 따라서 각 클래스의 샘플 수 균형을 맞춰주는 방법에 대해서 알아보겠습니다. 1. under-sampling majority 샘플수를 줄여서 minority 샘플 수와 균형을 맞추는 방법 2. over-sampling minority 샘플을 반복 샘플링하는 방법 3. Synthetic generation 위의 두 방법 외에도 SMOTE(Synthetic Minority Over-sampling Technique) 방법이 있습니다. minority에서 샘플을 복원추출하는 것 말고 인공적인 데이터를 추가로 생성하는 방법입니다. feature space에..
[머신러닝] Boosting method
·
연구 Research/인공지능 Artificial Intelligent
앙상블(ensemble) 방법 중에 boosting method가 있습니다. bagging도 ensemble에 속하는데, boosting과 차이가 있습니다. bagging 방법은 boostrap으로 데이터를 resampling해서 여러 개의 모델을 만들어서, 그 모델들을 종합하는 방식입니다. boosting 역시 여러 개의 모델을 만들지만, 그 모델에 가중치를 부여해서 가중치를 반복적으로 업데이트하는 방식입니다. Adaboost Updates weights of the observations at each iteration. Weights of well classified observations decrease relatively to weights of misclassified observations...
[머신러닝] Logistic Regression
·
연구 Research/인공지능 Artificial Intelligent
로지스틱 회귀모형을 통해 특정 class에 속할 확률을 알 수 있습니다. 1. Logistic Regression 소개 logistic regression은 우리가 흔히 사용하던 linear regression의 변형이라고 볼 수 있습니다. 그림 출처 : https://ko.wikipedia.org/wiki/%EC%8B%9C%EA%B7%B8%EB%AA%A8%EC%9D%B4%EB%93%9C_%ED%95%A8%EC%88%98#/media/%ED%8C%8C%EC%9D%BC:Logistic-curve.svg 위 함수는 $f(y)=\frac{1}{1+e^{-y}}$ $logit(p)=\ln\left(\frac{p}{1-p}\right)=\beta_{0}+\beta_{1}X$ linear regression처럼 회..
[머신러닝] Classification evaluation measure
·
연구 Research/인공지능 Artificial Intelligent
모델을 만들고 나서 이 모델이 실제로 사용되기 위해서는 모델의 성능을 고려해야 합니다. Sensitivity (민감도, True positive rate, recall) : 실제 true인 것 중에 모델이 true라고 예측한 비율 $\text{Sensitivity = }\frac{TP}{TP+FN}$ Specificity (True negative rate) : 실제 false인 것 중에 모델이 false라고 예측한 비율 $\text{Specificity = }\frac{TN}{FP+TN}$ Precision : 모델이 true라고 예측한 것 중에 실제로 true인 비율 $\text{Precision = }\text{TP}{TP+FP}$ F1 score : precision과 recall의 조화평균 $\..
[머신러닝] Decision Tree
·
연구 Research/인공지능 Artificial Intelligent
번역하면 의사결정 나무라고 하는데, classification과 regression에 둘 다 쓰일 수 있는 머신러닝 방법입니다. decision tree는 feature에 대한 조건을 통해 가지를 치면서 학습하는 방법입니다. numerical, categorical variable 둘 다 쓸 수 있고 분석 과정이 직관적이라는 점 때문에 많이 쓰이고 있습니다. (나중에 쓸 random forest가 decision tree를 더 발전시킨 형태) 이 decision tree는 불순도(impurity, 범주들이 섞여있는 정도)를 최소화하는 방향으로 진행되어야 합니다. 우리가 decision tree를 사용할 때 이 불순도를 판단하기 위한 척도로서, 1) Gini index, 2) Entropy index가 사..
[데이터과학] 결측치 Missing Data 처리
·
연구 Research/데이터과학 Data Science
결측치에도 종류가 있기 때문에 각 결측치의 특성에 따라서 처리하는 방법이 달라질 수 있습니다. 1. 결측치 Missing data 종류 1) Missing completely at random (MCAR) 완전히 무작위로 Missing value가 있는 경우입니다. 관찰 가능한 변수에도 영향을 받지 않고, 관찰 불가능한 (우리가 관심있어하는) 변수에도 무관합니다. 예를 들면, 설문조사를 하는 데 성별이나, 나이에 관계없이 일정하게 결측치가 존재한다면 결측치가 설문의 결과를 편향되도록 만들지 않을 것입니다. 즉 이 데이터에 대한 분석은 unbiased되었다고 볼 수 있습니다. 2) Missing at random (MAR) 관찰된 데이터의 변수에 따라 결측치 경향성이 있을 뿐, 결측치 자체에는 그 경향성이..
파이썬에 대한 몇 가지 설명
·
프로그래밍 Programming/파이썬 Python
* 파이썬 관련한 정보를 간단하게 적어두고 있습니다. 계속 추가할 예정 C, C++은 컴파일러(compiler)이고 python은 인터프리터(interpreter) MATLAB이나 R은 Reserach, prototyping, and test new ideas를 목적으로 하는 언어 Java, C#, C++은 실제 production system을 만들기 위한 언어 FORTRAN은 과학적, 수학적 계산에 적합한 언어 python은 C, C++, FORTRAN 등의 언어와 호환이 되기 때문에 많이 사용된다. 실제로 데이터 사이언스 분야에서 가장 많이 쓰이는 언어는, Python, R, SQL 등이 있다.
[데이터과학] Data preprocessing 개요
·
카테고리 없음
1. Data Wrangling raw 데이터를 cleaning하고 structuring하는 과정 - 분석에 용이한 구조로 만드는 과정 다음과 같은 과정을 포함합니다. data importing, data cleaning, data structuring, string processing, HTML parsing, handling dates and times, handling missing data, and text mining. data filtering 전체 features에서 조건에 따라서 조건을 충족하는 데이터만 가지고 오는 것 ex) 야구선수 데이터에서 타율이 0.3 이상인 rows만 가지고 오기 data selecting 전체 features에서 일부 features만 선택하는 것 ex) 환자들..
[데이터과학] 데이터 분석 과정 data analysis process
·
카테고리 없음
데이터 과학을 하기에 앞서 기본적인 문제 해결 프로세스에 대해 알아보려고 합니다. 기계공학에서도 어떤 학문이든 들어가기에 앞서, 어떤 관점에서 문제를 접근할 것인지를 미리 introduction에서 알려주고 시작합니다. 데이터 과학도 결국은 문제를 해결하기 위해 존재하므로, 그 분석 process를 잘 알고 있는 것 역시 중요할 것이라 생각합니다. 1. Problem definition 내가 어떤 문제를 풀 것인지 정합니다. 생각보다 이렇게 문제를 명확하게 정의하지 못해서 발생하는 문제점들이 많습니다. 설계를 할 때도 문제 상황을 제대로 파악하지 않고 해결 방법을 들이댔다가 나중에 잘못 되는 경우를 종종 봤습니다. 데이터 분석을 할 때도 문제를 정의하면서 시작합니다. 예를 들면, 고객들의 구매 패턴을 알..