data-science-summary/summary
-
Random Forest in pythondata-science-summary/summary 2020. 9. 20. 17:05
Random Forest Bagging방식의 일종 여러개의 Bootstrap data set 으로 여러개의 Decision Tree 를 만들고 Voting을 통해 최종 예측값을 출력하는 방식 여러개의 Bootstrap data set 뽑고 이중 일부 feature만 랜덤!으로 Decision Tree의 불순도(impurity)를 계산(매 node마다 feature 랜덤 추출)하여 Decision Tree Model 을 만든다. 여러개의 data set 이 있으니 여러개의 Decision Tree 가 생성된다. 다양한 Decision Tree 모델에 Test Data를 입력하여 가장 많이 추출되는 예측값을 최종 결과 값으로 선택한다. from sklearn.ensemble import RandomFores..
-
Ensemble & Bootstrap & Bagging & Boosting 간단정리data-science-summary/summary 2020. 9. 20. 17:02
Ensemble & Bootstrap & Bagging & Boosting Ensemble 여러 모델들을 결합하여 사용하면 Single 모델 보다 더 좋은 성능을 얻을 수 있다는 아이디어 높은 bias 로 인한 underfitting 과 높은 Variance로 인한 Overfitting 의 문제를 일종의 중간값으로 맞출수 있어 Overfitting피함 가능 동일한 학습 알고리즘을 사용한 모델을 결합하면 앙상블 / 서로 다른 학습 모델을 결합하여 새로운 모델을 결합하면 Stacking 이라고 함 Bootstrap 중복을 허용하여 샘플 n개를 뽑는것 Bagging Bagging(Bootstrap Aggregating) => 샘플을 여러번 뽑은 뒤 각 모델을 학습시켜 결과를 집계(Aggregating) 후 투..
-
Decision Tree in pythondata-science-summary/summary 2020. 9. 20. 16:54
Decision Tree 분류와 회귀 분석 모두 사용되어 CART(Classification and Regression Tree) 라고함 CART 일종의 알고리즘 방식으로도 쓰이는데 이진분리를 함, C4.5 & C5.0 이런것들 모두 알고리즘 방식의 이름이며 CART 랑은 다르게 다지분리(다양 하게 분기되는) 등이 특징 => 어차피 오버피팅 잘나서 ensemble 모델 씀 분류 Decision tree Classification tree 모양으로 if else 식으로 분류됨 분류시 : 숫자만 분류가능 => LabelEncoder, onehotEncoder 로 string형 범주형 변수 변환한뒤 수행 최상위 노드 = 루트 노드(root node) / 자식 노드가 없는 노드를 leaf 노드 / leaf노드가..
-
SVM (Support Vector Machine) in pythondata-science-summary/summary 2020. 9. 20. 16:41
SVM (Support Vector Machine) 두 데이터를 구분하는 가장 안정적인 판별(결정) 경계선을 찾은뒤 이를 기준으로 데이터 구분 판별경계선에서 가장 가까운 값을 지지벡터(support vector) 라고 하며 경계선을 분류 경계면이라고함 두 분류 경계면 사이를 마진(margin)이라고 하며 이를 최대화 하는것이 목적 == 최대한 구분 잘하는것 => 분류시 오류를 최소하하는데 이떄 라그랑즈 승수법이라는것을 이용해 최적의 결정경계(초평면)를 찾음 초평면(hyperplane)이란? 간단하게 차원이 p-1 차원인 부분 공간 => 즉, 2차원 그림에서는 선, 3차원에서는 평면 선형 / 비선형 모두 분류 가능 선형일때 => kernel: linear 비선형일때 => kernel: rbf, poly #..
-
나이브 베이지안 분류 (Naive Bayes Classifier) in pythondata-science-summary/summary 2020. 9. 19. 17:59
Naive Bayes Classifier Bayes theorem 에서 유도됨 베이즈 정리란? 사후 확률(Posterior Probability) = 가능성(Likelihood) * 사전 확률(Class Prior Probability) / 특정 개체가 발생활 확률(Predictor Prio Probability) P(C|X) = P(X|C) * P(C) / P(X) 그리고 X 를 형성하는 무수히 많은 특징(feature) 들이 있을떄 식은 다음과 같음 P(C|X) = P(x1,x2,x3...xn|C) * P(C) / P(x1,x2,x3...xn) 그리고 이때! feature 들은 서로 독립된 변수라는 가정! => Naive 단어 쓰인 이유중 하나 독립이니 조건부 확률이 교집합으로 나타냄. P(C|X) ..
-
KNN (k-neareast neighbor) 분류모델 in pythondata-science-summary/summary 2020. 9. 19. 17:51
KNN (k-neareast neighbor) 분류모델 근처 k개의 가장 가까운 훈련 데이터로 값을 예측하는방법 궁금한 데이터 주변 K 개의 데이터의 클래스가 1 이 제일 많으면 1 이 됨 거리 측정하는 방식에는 유클리디안방식, 맨헤탄 방식등이 있다. 보통 판정하기위해 K 는 홀수로 측정한다. 장점은 쉽고 직관적이고 샘플수가 많은경우 높은 정확도를 가지고 있다. 단점은 느리다. # KNN (k-neareast neighbor) 분류모델 from sklearn.neighbors import KNeighborsClassifier X = [[0,1,2], [1,3,5], [1,10,10],[1,2,2],[1,3,4],[2,7,8], [3,3,10]] y = [0, 0, 1, 0,0,1,1] # 유클리디안방식 ..
-
variance 와 bias 관계 간단 정리data-science-summary/summary 2020. 9. 19. 17:19
Variance 와 Bias는 Trade-off 관계 Variance = 분산: 예측값이 변동되는 정도 = 예측값들이 얼마나 서로 떨어져있는가 Bias = 편향: 실제 문제를 단순한 모델로 추측하여 오차가 발생하는것 = 실제값에서 얼마나 멀어졌는가 모델이 복잡해질수록 분산은 높아지고 편향은 낮아진다. => 오버피팅됨 => 해결법: regularization, k-fold, early stop learning , dropout 모델이 덜복잡할수록 분산은 낮아지고 편향은 높아진다. => 언더 피팅됨 => 해결법: feature 를 더 많이 반영하거나 복잡한 모델사용 분산과 편향을 동시에 최대한 낮추는 지점을 학습법으로 정해야함