초보자의 특징 공학

특징 공학, 비망록을 배우고 싶습니다.
나는 점차적으로 갱신하고 싶다!!

이 보도의 독법


프로젝트마다 GiitHub에 Juptyter-notebook을 올리고 있으니 보면서 글을 읽어주시기 바랍니다.

특징 공정


Microsoft Azure의 정의에 따라
특징 공학에서 학습 과정을 추진하는 데 도움이 되는 원시 데이터에서 특징을 창조하고 학습 알고리즘의 예측력을 향상시키려고 한다.피쳐 엔지니어링 및 선택은 TDSP의 일부입니다.
- 특징 공학: 본 과정은 데이터에 있는 기존의 원시적 특징에서 관련 특징을 생성하여 학습 알고리즘의 예측 능력을 향상시키고자 한다.
- 특징 선택: 이 과정은 원시 데이터가 가지고 있는 관건적인 서브집합을 선택하여 훈련 문제의 차원을 줄인다.
이런 방법은 더욱 높은 정밀도의 모델을 구축하여 식별 결과가 쉽게 설명될 수 있는 환경을 만들기 위한 것이다.

데이터 설명


이번에 나는 두 가지 데이터 집합을 사용한다.
  • Kuzushiji-MNIST | Kaggle
  • Titanic: Machine Learning from Disaster | Kaggle
  • Kuzushiji-MNIST는 일본어의 붕괴 문자를 MNIST와 같은 문자 이미지로 분류하는 데이터 세트입니다.Titanic카글로 유명한 타이타닉호 생존자 분류 문제
    특징 공정에서 이것은 매우 효과적인 방법이다. 特徴の重要度를 얻을 수 있기 때문에 직관적으로 이해할 수 있다Titanic 등 의미 있는 특징에서 효과적이다.

    Pearson Correlation | 필슨 상관 관계


    일반적으로 통계에서 사용되는相関係数. 각 특징과 교사 라벨의 상관수를 각각 취하여 의미 있는 특징을 식별하는 기법을 선택한다. 아래의 사이트는 개념을 간단명료하게 설명한다.
    '상관수'가 뭐예요? -알기 쉬운 의미, 장점과 단점을 간단명료하게 설명하다.

    GitHub


    House Detecting: Machine-Learning/Pearson_Correlation.ipynb at master · sasayabaku/Machine-Learning

    How to


    상관계수의 획득 방법


    상세한 상황은 GiitHub의Cal Correlations에서 아래 그림과 같이 각 특징에 따라 특징과 교사 라벨의 선형 회귀를 진행한다.
    (데이터의 분산이 심해서 이 회귀는 미묘해 보인다...)
    이 네 가지는 이번 시도의 데이터 중 높은 특징이다.

    상관수 높은 데이터 얻기


    GiitHubPlot Correlation 근처에 있습니다!
    각 특징의 상관계수를 얻어 상위 10위보다 높은 그림을 나타낸다. 이런 상황에서 0.79의 상관계수OverallQual는 라벨과 가장 관련이 있다.

    선택한 피쳐로 학습할 때의 정밀도|선형 회귀


    그렇다면 특징 선택이 끝났으니 정밀도 확인을 배워보자.
    특징을 모두 사용했을 때(289차원)와 관련이 높은 특징을 10차원으로 사용했을 때 정밀도는 거의 변화가 없기 때문에 관련 특징 선택을 약간 나타내는 것이 효과적이다.

    결점


    임무가 회귀 문제일 때 쌍방이 모두 연속값이기 때문에 상관수는 유형 데이터 등 이산 특징에서 효과가 없을 수 있다.

    LightGBM


    라이트GBM은 결정목 중 하나로 그래디언트 부스팅이라고 불리는 합성기 학습을 응용해 간단하지만 범용성을 지닌 기법이다.
    사이트 축소판 그림LightGBMの仕組み는 매우 명확하게 설명합니다!

    GitHub


    Machine-Learning/Titanic_LightGBM.ipynb at master · sasayabaku/Machine-Learning

    환경 설정


    이번에는 파이톤의 lightgbm 라이브러리를 사용합니다.

    Install

    pip install -y lightgbm
    

    배우다


    LightGBM 학습 설명 | 클릭

    학습 매개 변수 설정

    params = {
        'task': 'train',
        'boosting_type': 'gbdt',
        'objective': 'multiclass',
        'num_class': 2,
        'verbose': 2,
        'seed': seed_value
    }
    
    boosting_type원논문Gradient Base에서 공부를 잘하기 때문에 사용합니다.

    변환 데이터 형식

    LightGBM 라이브러리는 전용 Dataset 모듈로 전환해야 한다.
    lgbm_train_data = lightgbm.Dataset(train_data, label=train_labels)
    lgbm_validation_data = lightgbm.Dataset(validation_data, label=validation_labels, reference=lgbm_train_data)
    

    배우다

    evaluation_results = {}
    history = lightgbm.train(
        params, 
        lgbm_train_data,
        valid_sets=[lgbm_train_data, lgbm_validation_data],
        valid_names=['Train', 'Validation'],
        evals_result=evaluation_results,
        feval=accuracy,
        num_boost_round=500,
        verbose_eval=20,
        early_stopping_rounds=50
    )
    
    valid_setsvalid_names의 대응을 통해 학습 로그와Validation 로그를 설정eval_result의 dict형 변수에 저장합니다.feval에서는 평가 함수를 설정했지만 분류기는 존재하지 않는다Accuracy.... 따라서 아래 코드를 사용하여 자체 제작한다.num_boost_round는 이른바 Epoch수다. LightGBM은 반복 학습이기 때문에iterate 횟수를 설정한다.
    def accuracy(preds, data):
        y_true = data.get_label()
        N_LABELS = 2
        reshaped_preds = preds.reshape(N_LABELS, len(preds) // N_LABELS)
    
        y_pred = np.argmax(reshaped_preds, axis=0)
        acc = np.mean(y_true == y_pred)
    
        return 'accuracy', acc, True
    

    피쳐 선택

    early_stopping_roundsLightGBM은 학습 매개 변수로서 특징 선택을 하는 기술이 있다.

    중요성 시각화

    importance(학습로그)에서 history(중요도)에 대응하는 feature_importance(특징명) 데이터를 Frame화하여 feature_name의 값에 따라 정렬한다.
    importances  = pd.DataFrame(
        {'features': history.feature_name(),
         'importance': history.feature_importance()
        }
    ).sort_values('importance', ascending=False)
    importances.reset_index(drop=True)
    

    LinterSVC를 통해 피쳐 선택의 유효성 검사


    Titanic


    무조화importance모델은 정밀도를 평가했다.
    모든 피쳐를 사용하지 않고 상위 6개의 피쳐를 사용하면 평균 정밀도가 좋아집니다. 이렇게 하면 LightGBM을 사용하여 LinearSVC, Kagle特徴選択로 다른 모델을 만들 수 있습니다.

    그러나 아래 그림에서 보듯이 LightGBM의 정밀도는 상당히 높기 때문에 LightGBM은 항상 가장 좋은 모델이다

    총결산


    이번에는 특징 공사로서
  • 천공 귀걸이의 상관수
  • LightGBM
  • 의 특징 선택 기법,
    앞으로도 점진적으로 업데이트되길 바란다.

    참고 문헌


  • 라이트 GBM이 FIFA 18의 선수 데이터에 대한 시장 가치 평가

  • 파이썬: LightGBM-CUBE SUGAR CONTAINER

  • Pythhon: LightGBM 처리 사용자 정의 양도 - CUBE SUGAR CONTAINER
  • LightGBM의 철저한 시작 – LightGBM의 사용 방법과 구조, XGBoost와의 차이
  • 좋은 웹페이지 즐겨찾기