2016-11-02 8 views
0

매우 불균형 한 클래스 가중치 (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 점수를 산출한다.

답변

2

근본적인 문제에 대해 많이 알지 못하면 sklearn.ensemble.RandomForestClassifiersklearn.ensemble.GradientBoostingClassifier은 기능을 높여주고 대부분의 용도로 사용하기 쉽습니다. 여기에 아이리스 샘플 데이터에 대한 간단한 예이다 : 나는이 방법을 시도했다 질문 @Randy C에서 언급 한 바와 같이

In [79]: from sklearn.datasets import load_iris 

In [80]: from sklearn.ensemble import GradientBoostingClassifier 

In [81]: gbm.fit(load_iris()["data"], load_iris()["target"]) 
Out[81]: 
GradientBoostingClassifier(init=None, learning_rate=0.1, loss='deviance', 
       max_depth=3, max_features=None, max_leaf_nodes=None, 
       min_samples_leaf=1, min_samples_split=2, 
       min_weight_fraction_leaf=0.0, n_estimators=100, 
       presort='auto', random_state=None, subsample=1.0, verbose=0, 
       warm_start=False) 

In [82]: zip(load_iris()["feature_names"], gbm.feature_importances_) 
Out[82]: 
[('sepal length (cm)', 0.072135639528234), 
('sepal width (cm)', 0.10858443031280439), 
('petal length (cm)', 0.31074531613629014), 
('petal width (cm)', 0.43520128068933822)] 
+0

, 감사 - 때문에 클래스 라벨의 심각한 불균형에 내 모델이 99.99999 %로 예측된다. 이 문제를 해결하기위한 제안이 있으십니까? 또한 기능의 중요성을 추출했지만 기능 이름에 어떻게 매핑합니까? – ydennis

+0

graphlab의 GBM 및 sklearn의 선형 모델에 대해 언급했지만,이 질문은 sklearn의 GBM입니다.이 질문은 귀하가 질문 할 때 오픈 소스입니다. –

+0

불균형을 위해 기본 50 % 대신 다른 점수 제한을 설정하면됩니다. ROC AUC와 같은 항목은 모델의 순위가 잘되어 있는지를 알려주고 오탐 (false positive)과 위음성 (false negative)에 대한 허용 기준에 따라 점수 임계점을 선택할 수 있습니다. –