alpyrithm_알파이리즘

DAY5. Supervised Learning II 본문

SM공부/Data Mining & Machine Learning

DAY5. Supervised Learning II

알파이 2020. 7. 26. 12:36

 

Summary

  • Supervised Learning(지도 학습) 응용
    • Classification(분류) 예시
    • Regression(회귀분석) 응용
      • Linear Regreassion의 이해 및 응용
      • Logistic Regression의 이해 및 응용
      • K-Nearest Neighbor(KNN)의 이해 및 응용

 

 

 

 

 

 

 

 

 

 

 

Main

Supervised Learning 응용

  • Classification Model(분류 모델)
    • 로지스틱 회귀분석(Logistic Regression)
    • 의사결정나무(Decision Tree)
    • 앙상블(Ensemble)
      • Random Forest
      • Gradient Boosting
    • SVM(Support Vector Machine)
    • K-Nearest Neighbors
    • Naive Bayesian Classification
    • 인공 신경망(Neural Network)
    • Text 분류
  • Classification(분류) 예시
    • 실생활 예시
      • 주차 게이트에서의 번호판 인식
        • 주차장에서 티켓을 뽑지 않고 차량 번호판을 찍어서 글자를 인식하여 정확도 향상
        • 이미지 픽셀 값들에 따라 숫자 글자를 Classification
      • 페이스북이나 구글 포토의 얼굴 인식
        • 페이스북에 사진을 올리면 친구 얼굴 위에 이름이 자동으로 태그가 달리는 기술
        • x가 이미지 픽셀, y가 사람 이름으로 정의하고 사용
      • 음성 인식
        • 음성 wav 파일에 대해서 해당 wav 부분이 어떤 음절인지를 인식하는데 적용
        • 애플 시리, 구글 보이스
        • 질문에 대해서 답해주는 부분 말고, 인식 부분만 이용하는데 x가 음성 파형 y가 음설
  • Regression(회귀분석)의 응용
    • Regression을 사용하는 Case
      • 강한 연관성을 갖고 있는 독립 변수가 이와 연관된 종속 변수를 어떻게 설명하는지 알아내고 결정하고자 하는 Case
      • 종속변수의 미래 가치를 예측하고자 하는 Case
      • 특정 변수나 변수의 집합에 대한 기여도 평가시 다른 독립 변수를 통제하는 Case
    • 실생활 예시
      • 최고 기온과 빙과류 판매 사이의 상관관계 파악
      • 매출액에 영향을 미치는 변수들 파악
      • 매출액에 영향을 미치는 변수들 파악 후 각 변수들간 영향 파악
      • 미래 매출액 예측
    • Linear Regression의 이해 및 응용
      • Linear Regression은 예측 변수와 결과 간의 선형 관계를 사용하여 결과를 예측하는 Regression Model 유형
      • Line과 Data point 사이의 오류(차이)를 가장 최소화하는 Line을 찾으면 Line이 생성
      • 모델을 평가, 모델 Fitting에 사용
      • Y = a + b1X1 + b2X2 + ... + biXi
        • Y는 결과 변수의 예측 값
        • a는 절편(선이 X축과 교차하는 점)
        • 각 X는 변수의 값
        • 각 b는 해당 변수에 지정된 각각의 가중치
      • 장점
        • 모델의 쉬운 해석 가능
        • 계수를 통해 예측 변수의 각 단위 변경에 대해 Y가 얼마나 많이 변경될지 파악
        • 내년에 각 고객의 판매 수익을 예측하는 모델이 있고, 전년도 예측 변수의 구매 수에 대한 계수가 10인 경우 전년도의 각 구매에 대해 고객의 수익은 $10 더 높음
      • 단점
        • 단순성에서 비롯된 중요한 약점이 존재
        • 실제 관계는 종종 더 복잡한데 선형 관계만 포착 가능
        • 선형 모형에서는 예측 변수의 값이 아무리 높아도 예측 변수가 더 많을수록 예측 변수가 더 낮은 효과와 동일한 효과가 있다고 가정하므로, 실제로는 그렇지 않은 경우가 많이 발생하는 문제
        • 특정 제품이 중간 소득 범위의 고객에게 어필할 경우 소득이 낮은 고객의 수입이 증가하면 해당 고객의 매출이 증가하고 수입이 높은 고객의 수입이 증가하면 매출이 크게 감소할 것으로 예상, 해당 고객에게 이는 Non-Linear 관계
      • Codes
        • pandas.DataFrame.corr()
          • 상관관계 분석 - 두 변수간에 어떤 선형적, 비선형적 관계를 갖고 있는지 분석
          • 두 변수간의 연관된 정도를 나타내는 것, 인관관계를 설명하는 것은 아님
          •  parameter
            • method : {'pearson', 'kendall', 'spearman'}
            • pearson : standard correlation coefficient
            • kendall : Kendall Tau correlation coefficient
            • spearman : Spearman rank correlation
          • 일반적 해석
            • -1.0 ~ -0.7 / 0.7 ~ 1.0 : 강한 선형 관계
            • -0.7 ~ -0.3 / 0.3 ~ 0.7 : 뚜렷한 선형 관계
            • -0.3 ~ -0.1 / 0.1 ~ 0.3 : 약한 선형 관계
            • -0.1 ~ 0.1 : 거의 무시할 수 있는 선형 관계
        • sklearn.model_selection.train_test_split()
          • 데이터 분할
          • parameter
            • arrays : 분할시킬 데이터
            • test_size : 데스트 데이터 셋의 비율이나 개수(default = 0.25)
            • train_size : 학습 데이터 셋의 비율이나 객수(default = 1 - test_size)
            • random_state : 데이터 분할 시 셔플이 이루어지는데 이를 위한 시드 값
            • shuffle : 셔플 여부 설정(default = True)
            • stratify : 지정한 Data의 비율을 유지하여 분할
          • arrays에 데이터와 레이블을 둘 다 넣는 경우 순서쌍은 유지
        • sklearn.linear_model.LinearRegression()
          • 선형 회귀 분석 
          • Methods 
            • LinearRegression.fit() : fit linear model
              • LinearRegression.coef_ : 기울기
              • LinearRegression.intercept_ : 절편
            • LinearRegression.predict() : 예측
        • scipy.stats.pearsonr()
          • 피어슨 상관계수 검정
          • pearson correlation coefficient(상관계수), p-value
          • p-value가 보통 0.05보다 작으면 귀무가설 기각하고 대립 가설 채택
          • 상관계수의 절댓값이 클수록 강한 상관관계
    • Logistic Regression의 이해 및 적용
      • Regression을 이용하여 데이터가 어떤 범주에 속할 확률을 0에서 1 사이의 값으로 예측
      • 그 확률에 따라 가능성이 더 높은 범주에 속하는 것으로 classification함
      • 스팸 메일 분류기처럼, 어떤 메일을 받았을 때 그것이 스팸일 확률이 0.5 이상이면 spam으로 분류 0.5보다 작은 경우 ham으로 분류
      • 데이터가 2개의 범주 중 하나에 속하도록 결정 = binary classification
      • Steps
        • 모든 feature들의 계수(coefficient)와 절편(intercept)을 0으로 초기화
        • 각 속성들의 값(value)에 계수(coefficient)를 곱하여 log-odds 찾기
        • log-odds를 sigmoid 함수에 넣어서 [0, 1] 범위의 확률 찾기
      • 활용 용도
        • 연령, 자동차 소유 유무, 연간 소득 등과 같은 특성이 개인신용불량 여부에 어떤 영향을 미치는가?
        • 유권자의 연령, 성별, 거주지역, 학력 등이 선호하는 후보 선택에 어떤 영향을 미치는가?
      • Codes
    • K-Nearest Neighbor(KNN)의 이해 및 적용
      • 개념
        • KNN은 새로운 데이터가 주어졌을 때 기존 데이터 가운데 가장 가까운 k개 이웃의 정보로 새로운 데이터를 예측
        • 거리 기반으로 이웃을 결정하며 새로운 사건이 발생했을 때 가장 근접한 k-이웃의 값을 평균해서 예측하거나 빈도가 많은 클래스로 분류하는 탐색적 기법
        • 지정하는 k에 따라 근접 이웃을 결정하고 결과를 산출
        • data point의 범주 정보는 주변 이웃들을 이용 및 추론
        • k에 따라 classification이 달라질 수 있음
      • Lazy model or Instance-based Learning
        • 새로운 데이터가 들어왔을 때, 기존 데이터 사이의 거리(Euclidean/Manhatan/Mahalanobis Distance)를 측정하여 이웃들을 선발
        • KNN 모델을 별도로 구축하지 않기에 KNN을 Lazy model이나 Instance-based Learning이라 부름
        • Model-based learning과 대비되는 개념
        • 별도 모델 생성과정 없이 각각의 관측치(instance)만을 이용하여 분류를 수행
      • 장점
        • Training Data 내에 있는 노이즈의 영향을 크게 받지 않으므로 학습 데이터 수가 많은 경우, 효과적임
        • Mahalanobis Distance와 같이 데이터의 분산을 고려할 경우 Robust함
      • 단점
        • 최적 이웃의 수(k)와 어떤 거리 척도가 분석에 적합한지 여부가 불분명하므로 데이터 특성에 맞게 연구자가 임의로 선정해야 함
        • 새로운 관측치와 각각의 학습 데이터 사이의 거리를 전부 측정해야 하므로 연산 시간이 오래 걸림
      • 활용 용도
        • 위치 측위
          • 이동객체의 위치에서 AP 신호 강도를 측정하고 이를 KNN 알고리즘을 활용하여 이동객체의 위치를 추정
        • 선호도 분류
          • 사용자의 추천정보 기반 성향/구매 패턴 분류
        • 데이터 필터링
          • 포털 등의 중복, 유사 게시글 필터링
        • 고속도로 통행시간 예측
          • TCS 교통량 및 차량 근거리 무선통신(DSRC)을 활용한 통행시간 예측
      • Codes
        • pandas.DataFrame.drop()
          • row 또는 column 삭제
          • row : axis = 0 → default
          • column : axis = 1
          • inplace : True인 경우 drop한 데이터 프레임으로 기존 데이터 프레임을 대체하겠다는 뜻, default = False
        • sklearn.neighbors.KNeighborsClassifier()
          • k-최근접 이웃 알고리즘
          •  parameter
            • n_neighbors : int, default = 5, 분류 시 고려할 인접 샘플 수
              • 충분히 큰 수
              • 충분히 크지 않을 경우 과대적합
            • weights : {'uniform', 'distance'}, default = 'uniform'
              • 'uniform' : 거리에 가중치 부여하지 않음
              • 'distance' : 거리에 가중치 부여
            • metric : default = 'minkowski', 거리 계산 척도(minkowski, euclidean 등)
            • n_jobs : int, default = None, 이웃을 검색하기 위해 실행하는 병렬 작업 수
        • sklearn.metrics.confusion_matrix()
          • 분류 성능 평가
        • sklearn.metrics.accuracy_score()
          • 분류 성능 평가
          • 정확도 점수
        • sklearn.model_selection.cross_val_score()
          • evaluate a score by cross-validation
          • 교차 검증
          • parameter
            • scoring : 성능 검증에 사용할 함수
            • cv : 교차검증 생성기 객체 또는 숫자, 폴드(fold) 수, default = 3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형

'SM공부 > Data Mining & Machine Learning' 카테고리의 다른 글

+) DataFrame 기초 정리  (0) 2020.07.28
DAY6. Supervised Learning III  (0) 2020.07.27
DAY4. Supervised Learning I  (0) 2020.07.25
DAY3. Dimension Reduction - PCA  (0) 2020.07.24
DAY2. Data Analysis Basic & Pandas Basic  (0) 2020.07.23
Comments