BigData 26

[Python ML]K-최근접이웃(K-NN), 의사결정나무(Decision Tree)

* K-최근접 이웃(K-NN; K-Nearest Neighbor) - 가장 근접하게 있는 데이터 종류에 따라서 해당 데이터의 종류를 정해주는 알고리즘 (유유상종) - 판별하고 싶은 데이터와 인접한 k개의 데이터를 찾아, 해당 데이터의 라벨이 다수인 범주로 데이터를 분류하는 방식 - k는 '홀수'로 하는것이 좋음. 짝수일 경우 동점 상황이 만들어져 분류할 수 없는 경우가 발생할 수 있기 때문 * K-NN 코딩하기 1) KNeighbors Classifier(분류형) - 순서: 데이터 분할 - 데이터 표준화 - 데이터 밸런싱 - 모델 생성 - 모델 적용 - 결과값 도출 - X는 이산형 변수만 가지고 있기 때문에, StandardScaler()만 적용 - 오버샘플링 SMOTE 적용 - knn 분류모델 생성: ..

[Python ML]분류모델평가_오분류표, ROC커브 & 로지스틱 회귀분석(Logistic, Multinomial Logistic Regression Analysis)

* 분류모델 평가 1) 오분류표 - Accuracy(정확도) = TP + TN / TP + FN + FP + TN => 분자가 모두 T - Error Rate(오분류율) = FP + FN / TP + FN + FP + TN (1 – Accuracy) => 분자가 모두 F - Sensitivity(민감도) & Recall(재현율) = TP / P => 두개의 식이 같음 - Specificity(특이도) = TN / N => sensitivity의 반대편 - Precision(정밀도) = TP / TP + FP => 모두 P에 관한 것 - F1 score = 2 * precision * recall / precision + recall => 더하기가 아래로(분모로) 간다라고 생각 *accuracy, F1 s..

[Python ML]규제기법(Regularization)_릿지(Ridge), 라쏘(Lasso), 엘라스틱 넷(Elastic-Net)

* 규제(Regularization)란? : 우리 말로 정규화라고도 불린다. 독립변수의 수가 지나치게 많거나 변수간 다중공산성이 크다고 여겨질 때, 회귀 모델의 적합 성능을 향상시키기 위해 변수 선택이나 차원 축소 등의 방법을 사용할 수 있는데, 여기서 한 가지 더 선택할 수 있는 옵션이 바로 규제(Regularization)방법이다. 이 방법은 회귀계수를 구할 때, 회귀 계수의 크기에 제약을 두어 설명력이 낮은 독립변수에 대한 가중치를 줄인다. (설명 출처: https://velog.io/@cleansky/%EC%9D%B8%EC%82%AC%EC%9D%B4%EB%93%9C-%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-%EB%8C%80%ED%91%9C%EC%A0%81%EC%9D%B8-..

[Python Data Analysis]선형 회귀분석을 통해 'BMI지수'에 영향을 주는 요소 알아보기

1) 필요 패키지 불러오기 - pandas, train_test_split(데이터 분할) 2) 데이터 불러오고 결측값 제거 - dropna()는 전체 데이터에 적용하기 (X, Y 따로따로 했다가 행 수가 안맞아서 error가 계속 났다..) - isnull.sum(): 결측값 제거 확인하기 3) 데이터 분할, 통계기반 변수선택 4) Y에 로그 적용 5) 데이터 분할, 데이터 표준화 - 변수선택에서 연속형 데이터를 가진 변수만 도출되었기 때문에, StandardScaler()적용 6) 선형 회귀분석 - LinearRegression() - R2 = 0.843 (모델이 평균의 84%정도의 정확도로 설명하고 있다. ) - RMSE= 0.014 (실제값과 예측된 y의 오차가 0.014이다. ) 7) 실제값과 예..

[Python ML]선형 회귀분석(Linear Regression Analysis)

* 선형 회귀 분석 - 종속변수 Y와 한 개 이상의 독립변수 X와의 선형 상관관계를 모델링하는 회귀분석기법 - 가정: 선형성, 등분산성, 독립성, 비상관성, 정상성(정규성) - 독립변수의 갯수에 따라 1개일 경우 '단순 선형 회귀', 2개 이상일 경우 '다중 선형 회귀'로 나누어짐 (1) 단순 선형 회귀 (2) 다중 선형 회귀 - 회귀 모델 주요 평가지표 1) MSE(평균 제곱 오차) : 실제 값과 예측 값의 차이를 제곱해 평균한 것 : from sklearn.metrics import mean_squared_error 2) MAE(평균 절대 오차) : 실제 값과 예측 값의 차이를 절댓값으로 변환해 평균한 것 : from sklearn.metrics import mean_absolute_error 3) ..

[Python ML]변수 선택(일변량 통계기반/모형기반), 데이터 밸런싱(언더 샘플링/오버 샘플링(SMOTE))

* 변수 선택(특성 선택) Variable Selection - 새로운 특성을 추가할 때 혹은 고차원 데이터 셋을 사용할 때 가장 유용한 특성만 선택하고 나머지는 무시하여 특성의 수를 줄이는 방법 - 다중공산성 혹은 과적합이 발생하는 것을 방지하기 위한 방법 - 종류 1) 일변량 통계기반 선택 : 특정 일변량 통계량을 기반으로 특성 선택 : from sklearn.feature_selection from SelectKbest 2) 모형 기반 선택 : 지도 학습 머신러닝 모델을 사용하여 특성의 중요도를 평가해서 가장 중요한 특성만 선택 : from sklearn.feature_selection import SelectFromModel 3) 반복적 변수 선택 : (1) 특성을 하나도 선택하지 않은 상태로 시..

[Python ML]교차검증(Cross Validation)_k-fold/층화k-fold, 그리드 서치(Grid Search)

*빅데이터 분석 - 훈련 데이터(Train data): 모델을 학습시키는데 들어가는 데이터 - 검증 데이터(Test data): 학습된 모델의 성능을 평가하기 위한 데이터. 모델의 일반화를 판단하는데 사용 (*검증 데이터는 절대로 훈련 데이터를 포함해서는 안됨!) - Train data : Test data = 8 : 2 (or 7 : 3) -과적합(Overfitting) : 모델이 너무 복잡하여 훈련 데이터(Train)에는 적합하지만 일반화하기 힘든 상황 -부적합(Underfitting) : 모델이 너무 단순하여 훈련 데이터에서의 성능이 좋지 않아 일반화하기 힘든 상황 * 기계학습(Machine Learning) - ‘학습’? : 데이터로부터 모형을 만들어 나가는 것 1) 지도학습: 인덱스가 있는 것을..

[Python Data Analysis]주성분 분석(Principal Component Analysis), 요인 분석(Factor Analysis)_PCA 코딩

*주성분 분석(Principal Component Analysis) - 아래에서부터 위로의 분석; ‘데이터’에서 시작 - 변수의 수를 줄이는 차원 축소 기법 중 하나 - 다수의 변수를 어떻게 모아서 y에게 주는 영향을 더 잘 추정할 수 있을까? 에 대한 고민 - 고차원 데이터를 압축 : 변수 서로서로의 상관성이 큼 -> 묶을 수 있는 변수들을 찾아서 뭉터기로 반영(x1,x2,x3 => I1하나의 뭉터기) - 데이터로부터 x들을 뽑아서 I들로 묶은 뭉터기로 종속변수 추정 - Eigen value, Factor Loading -목적: 회귀분석시 독립변수 간에 (상관성이 높기 때문에) 다중공산성이 존재하는 문제 해결 - 주성분 분석 전 표준화 : 데이터 스케일링을 하지 않으면 스케일에 따라 주성분의 설명 가능..

[Python Data Analysis]상관관계 분석(Correlation Analysis)

* 상관관계 분석 - 근본: 공분산, np.cov(x,y) - 상관계수 종류 1) 피어슨 상관계수: 연속형 자료에 사용 2) 스피어만 상관계수: 순위가 변수별로 연관이 있는가 3) Kendall의 tau: 스피어만과 비슷하지만 표본이 작을 때 사용 - 편상관관계 분석: 제 3의 변수를 통제한 상태에서 두 변수의 상관관계를 분석하는 것 - 정준상관관계 분석: 2개 이상의 종속변수와 2개 이상의 독립변수 간의 관계를 살펴보는 기법 - 히트맵: 변수간 상관계수를 히트맵으로 한눈에 확인 가능 - 산점도 그래프: 두 변수간의 분포를 통해 상관관계성 혹은 선형성을 확인할 수 있다. 1. 필요한 패키지, 함수 불러오기 2. 데이터 불러오기 3. 피어슨 상관계수 - .corr(method = "pearson") - 상..

[Python Data Analysis]가설검정, 독립성/등분산성 검정, 정규화, T-test, ANOVA

* 가설검정 - 가설? 내가 주장하고 싶은 바 - 귀무가설(H0): 전과 후가 똑같은 상태(=차이가 없다), Xa = Xb 통계적으로 검정하는 가설 -대립가설(H1): 차이가 있다, Xa ≠ Xb 내가 연구하고자 하는 목적 -유의확률(p-value): 어느정도를 보면 유의한가, 평균에서 완전히 벗어나 있는 끝쪽 면적 P-value가 작다(0.05): 귀무가설 채택, 대립가설 기각 *독립성 검정 - 데이터셋이 독립성을 따르는지 검정하는 방법 - 결과 순서대로 (검정통계량, p-value, 자유도, 기대도수) - 귀무가설(H0): 두 변수 X와 Y는 독립적이다. (관련성이 없다) - 대립가설(H1): 두 변수 X와 Y는 독립적이지 않다. ..

728x90
반응형