Python 통합 학습 의 Blending 알고리즘 상세 설명

머리말
일반 기계 학습:훈련 데이터 에서 가설 을 배운다.
집적 방법:하나의 가설 을 구축 하고 그것들 을 조합 하려 고 한다.집적 학습 은 일종 의 기계 학습 모델 로 여러 개의 학습 기 가 훈련 을 받 아 같은 문 제 를 해결한다.
집적 방법 은 다음 과 같이 분류 된다.
Bagging(병행 훈련):랜 덤 숲
Boosting(직렬 훈련):Adaboost;GBDT; XgBoost
Stacking:
Blending:
또는 직렬 집적 방법 과 병렬 집적 방법 으로 분류
1.직렬 모델:기초 모델 간 의 의존 을 통 해 잘못된 분류 견본 에 비교적 큰 권 리 를 주어 모델 의 성능 을 향상 시킨다.
2.병렬 모델 의 원리:기초 모델 의 독립 성 을 이용 하여 평균 적 으로 오 차 를 크게 낮 출 수 있다.
2.블 렌 딩 소개
훈련 데 이 터 는 훈련 과 검증 세트+새로운 훈련 데이터 세트 와 새로운 테스트 세트 로 나 뉜 다.
훈련 데 이 터 를 구분 하고 분 단 된 훈련 데이터 의 일부 훈련 기 모델,일 부 는 모델 예측 을 거 쳐 새로운 특징 훈련 원 모델 로 한다.
테스트 데이터 역시 기본 모델 의 예측 을 거 쳐 새로운 테스트 데 이 터 를 형성한다.마지막 으로 원 모델 은 새로운 테스트 데 이 터 를 예측 했다.Blending 프레임 워 크 그림 은 다음 과 같 습 니 다.
주의:stacking 을 바탕 으로 구분 데 이 터 를 추가 한 것 입 니 다.
3.블 렌 딩 공정 도
在这里插入图片描述
4.567917.첫 번 째 단계:원시 훈련 데 이 터 를 훈련 집 과 검증 집 으로 나 누 었 다
  • 두 번 째 단계:훈련 집 을 사용 하여 훈련 T 개의 서로 다른 모델 을 사용한다
  • 4.567917.세 번 째 단계:T 개의 기본 모델 을 사용 하여 검증 집 을 예측 한 결과 새로운 훈련 데이터 로 한다4.567917.네 번 째 단계:새로운 훈련 데 이 터 를 사용 하여 원 모델 을 훈련 합 니 다
  • 다섯 번 째 단계:T 개의 기본 모델 을 사용 하여 테스트 데 이 터 를 예측 하고 결 과 는 새로운 테스트 데이터 로 한다
  • 4.567917.여섯 번 째 단계:원 모델 을 사용 하여 새로운 테스트 데 이 터 를 예측 하여 최종 결 과 를 얻는다在这里插入图片描述
    사례
    관련 공구 꾸러미 불 러 오기
    
    import numpy as np
    import pandas as pd 
    import matplotlib.pyplot as plt
    plt.style.use("ggplot")
    %matplotlib inline
    import seaborn as sns
    
    
    
    
    데이터 생 성
    
    from sklearn import datasets 
    from sklearn.datasets import make_blobs
    from sklearn.model_selection import train_test_split
    data, target = make_blobs(n_samples=10000, centers=2, random_state=1, cluster_std=1.0 )
    ##          
    X_train1,X_test,y_train1,y_test = train_test_split(data, target, test_size=0.2, random_state=1)
    ##          
    X_train,X_val,y_train,y_val = train_test_split(X_train1, y_train1, test_size=0.3, random_state=1)
    print("The shape of training X:",X_train.shape)
    print("The shape of training y:",y_train.shape)
    print("The shape of test X:",X_test.shape)
    print("The shape of test y:",y_test.shape)
    print("The shape of validation X:",X_val.shape)
    print("The shape of validation y:",y_val.shape)
     
    
    
    1 층 분류 기 설정
    
    from sklearn.svm import SVC
    from sklearn.ensemble import RandomForestClassifier
    from sklearn.neighbors import KNeighborsClassifier
    
    
    
    clfs = [SVC(probability=True),RandomForestClassifier(n_estimators=5,n_jobs=-1,criterion='gini'),KNeighborsClassifier()]
    
    
    
    
    2 층 분류 기 설정
    
    from sklearn.linear_model import LinearRegression
    lr = LinearRegression()
    
    
    
    
    제 1 층
    
    val_features = np.zeros((X_val.shape[0],len(clfs)))
    test_features = np.zeros((X_test.shape[0],len(clfs)))
    
    
    
    for i,clf in enumerate(clfs):
        clf.fit(X_train,y_train)
        val_feature = clf.predict_proba(X_val)[:,1]
        test_feature = clf.predict_proba(X_test)[:,1]
        val_features[:,i] = val_feature
        test_features[:,i] = test_feature
    
    
    
    
    제 2 층
    
    lr.fit(val_features,y_val)
    
    
    
    
    출력 예측 결과
    
    lr.fit(val_features,y_val)
    from sklearn.model_selection import cross_val_score
    cross_val_score(lr,test_features,y_test,cv=5)
     
    
    
    파 이 썬 통합 학습 의 Blending 알고리즘 에 대한 상세 한 설명 은 여기까지 입 니 다.더 많은 파 이 썬 Blending 알고리즘 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

    좋은 웹페이지 즐겨찾기