blog details
author


blog detail

랜덤 포레스트 알고리즘은 여러 산업에 걸쳐 적용되어 더 나은비즈니스 결정을 내릴 수 있게 되었습니다. 일부 사용 사례에는 높은 신용 위험 분석 및 교차 판매 목적을위한 상품 추천이 포함됩니다.

이 글에서는 전통적인 레드 와인 품질 검사기 데이터세트를사용하여 기능 중요도를 생성하는 여러 가지 방법을 간략하게 안내하겠습니다. 이 장을 마치면 프로젝트에 Random Forest를 적용하고 다양한 방법으로 결과를 비교하는 기본 개념을 갖게 됩니다.

목차: 기계 학습에서 Scikit learn 및 Random Forest를사용하여 객체 기능 중요도 생성

레드 와인 데이터 세트 및 데이터 교육 분할

모든 기계 학습 모델의 경우 적절한 데이터 세트를 얻거나 데이터를 전처리하는 것이 중요합니다. Kaggle은 적절한 데이터 세트를 찾는 데 가장 인기 있는 플랫폼 중하나입니다. 레드 와인 품질 프로젝트에 대한 링크는 다음과 같습니다.

https://www.kaggle.com/datasets/uciml/red-wine-quality-cortez-et-al-2009

가장 먼저, Pandas와 Sklearn train_test_split을 사용하여데이터를 처리하는 것이 첫 번째 단계입니다.

url = "winequality-red.csv"
wine_data = pd . read_csv ( url  , sep  = ";"  )
x = wine_data . drop ( 'quality'  , axis  = 1  )
y = wine_data [ 'quality'  ]
x_train  , x_test  , y_train  , y_test  = train_test_split ( x  , y  , test_size  = 0.5  , random_state  = 50  )

Scikit-learn의 내장 기능 중요성

Scikit-learn은 Random Forest 모델에 대한 내장된 기능중요도 방법을 제공합니다. 문서에 따르면 이 방법은 노드 불순물의 감소를 기반으로 합니다.

blog detail

Random Forest에서 질문은 모델의 기능과 같습니다. 일부질문은 다른 질문보다 더 많은 가능성을 제거하는 데 도움이 됩니다. 더 많은 가능성을 빠르게 제거하는데 도움이 되는 기능이 정답에 더 빠르게 가까워지는 데 도움이 되기 때문에 더 중요하다고 가정합니다. Scikit-learn을 사용하면 이러한 기능 중요성을 얻는 것이 매우 간단합니다.

rf = RandomForestRegressor ( n_estimators  = 100  , random_state  = 50  )
rf . fit ( x_train  , y_train  )
inbuilt_importances = pd . Series ( rf . feature_importances_  , index  = x_train .columns)
inbuilt_importances . sort_values ( ascending  = True  , inplace  = True  )
inbuilt_importances . plot . barh ( color  = 'black'  )

무작위 기능을 갖춘 내장된 Scikit-learn 방법

이 방법을 발전시키는 가장 간단한 방법은 데이터 세트에 무작위 특성을 추가하고 결과가 무작위 없이 첫 번째 것보다 더 많이 벗어날 수 있는지 확인하는 것입니다.

실제 특성이 무작위 특성보다 중요도가 낮다면 그 중요성이단지 우연에 의한 것임을 나타낼 수 있습니다.

def randomMethod ():
 X_train_random = x_train .copy()
 X_train_random  [ "RANDOM"  ] = np . random . RandomState ( 42 ). randn ( x_train .shape[ 0 ])
 rf_random = RandomForestRegressor ( n_estimators  = 100  , random_state  = 42  )
 rf_random . fit ( X_train_random  , y_train  )
 importances_random = pd . Series ( rf_random . feature_importances_  , index  = X_train_random .columns)
 importances_random . sort_values ( ascending  = True  , inplace  = True  )
 importances_random . plot . barh ( color  = 'blue'  )
 plt . xlabel ( "Importance"  )
 plt . ylabel ( "Feature"  )
 plt . title ( "Feature Importance - Scikit Learn Built-in with random"  )
 plt . show ()
 return

순열 기능의 중요성

순열 특성 중요도는 특성 값이 무작위로 섞일 때 모델 성능의변화를 측정하여 Random Forest 모델에서 각 특성의 중요도를 추정하는 또 다른 기술입니다.

이 방법의 장점 중 하나는 Random Forests뿐만 아니라 모든 모델에 사용할 수 있어 모델 간 결과를 더 비교할 수 있다는 것입니다.

SNAP의 랜덤 포레스트 기능 중요성

SHAP은 게임 이론을 기반으로 머신러닝 모델의 출력을 해석하는 방법입니다.

순열 중요도와 마찬가지로 모든 모델에 적용할 수 있는 기능중요도에 대한 통합된 측정값을 제공합니다.

가장 큰 단점은 특히 대규모 데이터 세트나 복잡한 모델의 경우 계산 비용이 많이 들 수 있다는 것입니다.

랜덤 포레스트 경로 기능 중요성

blog detail

각 기능이 Random Forest 예측에 어떻게 기여하는지 이해하는 또 다른 방법은 각 인스턴스가 취하는 의사결정 트리 경로를 살펴보는 것입니다.

리프 노드의 예측 값과 그 이전 노드의 예측 값 간의 차이를계산하여 각 특성의 예상 기여도를 얻습니다.

기능 중요도 생성기의 전체 Python 스크립트

76장 – Scikit learn 및 Random Forest를 사용하여 객체 기능 중요도 생성에 관심이 있다면, 'Chapter 75 + notion api' 메시지를 추가하여 뉴스레터를 구독 하세요. . 우리는 즉시 귀하의 사서함으로 스크립트를 보내드립니다.

76장 – Scikit learn 및 Random Forest를 사용하여 객체 기능 중요도 생성을 재미있게읽으시기 바랍니다. 그렇게 했다면 아래 나열된 일 중 하나를 수행하여 우리를 지원해 주세요. 이는 항상우리 채널에 도움이 되기 때문입니다.

  • PayPal( paypal.me/Easy2digital )을 통해채널을 지원하고 기부하세요.
  • 내 채널을 구독하고 Easy2Digital Youtube 채널 알림 벨을 켜십시오.
  • 내 페이지 Easy2Digital Facebook 페이지를 팔로우하고 좋아요를 누르세요.
  • 해시태그 #easy2digital을 사용하여 소셜 네트워크에 기사를 공유하세요.
  • Easy2Digital 최신 기사, 비디오 및 할인 코드를 받으려면 주간 뉴스레터에 가입하세요.
  • Patreon을 통해 월간. 멤버십을 구독하여 독점적인 혜택을 누리세요( www.patreon.com/louisludigital )

데이터 과학 및 기계 학습 Courseresa 추천 과정

이 게시물을 공유하세요

현재 댓글이 없습니다...

shape shape

뉴스레터에 가입하세요!

독점적인 자동차 스타일 콘텐츠 업데이트 및 특가를 받으세요