2013-05-12 2 views
0

에서 최적의 특성을 얻을 수 I는 1000 기능 (열)과 플로트 요소 100 선과 두 클래스 0과 1의 y 벡터 목표와 X 행렬을 가지고 y의 치수 (100,1)이다. 이 매트릭스에서 2 클래스를 구별하는 10 가지 최상의 기능을 계산하고 싶습니다. scikit-learn에 정의 된 카이 제곱을 사용하려고했지만 X은 float 요소입니다.행렬 N 개의 X의 m

당신은 저를 도와 내게 사용할 수있는 기능을 알 수 있습니다.

감사합니다. 난 당신이 X 무슨 뜻인지 잘 모르겠습니다

+0

당신은이 일을하려는 : 각 행의 클래스를 예측 한 후 (이 호출된다 주성분 분석 (https://en.wikipedia.org/wiki/Principal_component_analysis)) 10 (100)의 기능을 감소시키고 . [이 기능] (http://scikit-learn.org/dev/modules/generated/sklearn.decomposition.PCA.html)은 PCA 및 [SVMs] (http://scikit-learn.org/ 안정/모듈은/svm.html) 또는 [회귀 (http://scikit-learn.org/dev/modules/generated/sklearn.linear_model.LogisticRegression.html) 분류에 도움이 될 수 있습니다. –

+2

Anubhav 아니, 이건 네가하고 싶은게 아니야. Hocine은 차원 선택이 아닌 기능 선택을 원합니다. PCA는 전혀 감독되지 않아 수업을 전혀 보지 못합니다. –

답변

1

는, float 요소이다. Chi2는 음수가 아닌 막대 그래프 데이터 (즉, 정규화 된 l1)에 사용할 수 있습니다. 데이터가이를 만족시키지 못하면 다른 방법을 사용해야합니다.

는 scikit 배우기에 기능 선택 알고리즘의 whole module 있습니다. 문서를 읽었습니까? 가장 간단한 방법은 SelectKBest를 사용하는 것입니다.

+1

제 경험상, [L1 페널티 선택] (http://scikit-learn.org/dev/modules/feature_selection.html#l1-based-feature-selection)은 scikit-learn에서 기능 선택을하는 가장 일반적인 방법입니다 : 나는 주파수와 가우시안의 부울 (logarithms)에 대해 작동하는 것을 발견했습니다. –

+0

동일 :) :) (이것은 분명히 SO의 약어입니다) –

0

재귀 기능 제거 (RFE)는 나를 위해 정말 효과가있다. 이 방법은 처음에는 모든 기능에 가중치를 할당하고 가장 적은 기능으로 기능을 제거합니다. 이 단계는 우리가 원하는 기능을 얻을 때까지 반복적으로 적용됩니다 (귀하의 경우 10). 당신의 데이터가 상관 관계가있는 경우

http://scikit-learn.org/stable/modules/feature_selection.html#recursive-feature-elimination

은 내가 아는 한, L1 페널티 선택은 좋은 생각되지 않을 수도 있습니다. 틀 렸으면 고쳐줘.

관련 문제