매우 불균형 한 클래스 가중치 (1:99)를 가진 순전히 범주 형 데이터 세트가 있습니다.결정 트리의 출력으로 특징 가중치를 사용하도록 훈련 할 기계 학습 알고리즘은 무엇입니까?
필자는 해당 피쳐의 각 피쳐 및 값, 예측에 대한 중요성을 계산할 모델을 교육하고 싶습니다. 그래서 본질적으로 객체와 같은 딕셔너리를 생성 :
vocabulary = {
'user=12345': 0,
'user=67890': 1,
'age=30': 2,
'age=40': 3,
'geo=UK': 4,
'geo=DE': 5,
'geo=US': 6,
'geo=BR': 7}
그리고 중요성이 무게에 부착하기 :
weights = [.1, .2, .15, .25, .1, .1, .2, .2]
나는 알고리즘, 어떤 recommenadations를 사용한다 무엇 파이썬 기반의 기계 학습 라이브러리 라이브러리 내에서 위 출력을 추출 할 수 있습니다.
나는 시도했다. tensorflow 선형 회귀 분석기, scikit 회귀 선형 회귀 변수 & graphlab boosted trees. 증폭 된 나무가 가장 유망 해 보였지만 가능한 경우 오픈 소스 라이브러리를 사용하고 싶습니다.
미리 감사드립니다.
는 UPDATE :
GradientBoostingClassifier
인해 불균형 클래스에 0.999137901985
점수를 산출한다.
, 감사 - 때문에 클래스 라벨의 심각한 불균형에 내 모델이 99.99999 %로 예측된다. 이 문제를 해결하기위한 제안이 있으십니까? 또한 기능의 중요성을 추출했지만 기능 이름에 어떻게 매핑합니까? – ydennis
graphlab의 GBM 및 sklearn의 선형 모델에 대해 언급했지만,이 질문은 sklearn의 GBM입니다.이 질문은 귀하가 질문 할 때 오픈 소스입니다. –
불균형을 위해 기본 50 % 대신 다른 점수 제한을 설정하면됩니다. ROC AUC와 같은 항목은 모델의 순위가 잘되어 있는지를 알려주고 오탐 (false positive)과 위음성 (false negative)에 대한 허용 기준에 따라 점수 임계점을 선택할 수 있습니다. –