2014-04-11 3 views
0

Scikit Learn을 사용하여 Python으로 몇 가지 기본 감정 분류기를 만들었습니다. 이제 교차 검증 기술을 사용하여 평가하려고합니다. training_data이라고하는 100,000 개의 긍정적이고 부정적인 짹짹이 포함 된 데이터 세트가 있습니다.목록의 두 섹션을 가져 오는 것

테스트를 위해 전체 집합에서 20,000 블록을 가져올 때마다 나머지 180,000 개를 교육에 사용해야합니다. 내가 가진 문제는 블록이 어느쪽에 있지 않을 때 어떻게 그 블록의 양쪽 데이터를 얻는 것입니까?

나는

training_data.data[:20000] + training_data.data[40000:] 

같은 일을 시도했지만 그것은 말한다

그러나 나는 dataset.data 이었다는 것을 인상했다

피연산자는 다른 모양

과 함께 방송 할 수없는 그냥 목록.

["@karoliiinem i'm personally following the next 300 people that will follow --& gt; @omgfantasy rt once you're done so i'd know ?\n", '@kristensaywha i know s tupid people\n', 'i might be going shopping tomorrow at the beach) i hope so\n' , '@_sophieallam cannae wait for a 5 hour train journey \n', 'wifey needs a hug \n', "i'm scared to drive to daytona with this car \n", "@xxiluvdahviexx i'm so sorry\n", "@chooselogoism that sucks i can't see w/o my glasses at all\n", 'x f actor \n']

나는 당신이 잡을 수있는 목록에 작업의 어떤 종류를 찾고 있어요 같아요

여기 요청으로

는 training_data.data의 출력 예 [1시 10분]입니다 지정된 슬라이스를 제외한 모든 데이터?

+0

당신이 밖으로 인쇄를 포함하도록 게시물을 수정할 수'training_data.data [0시 10분]'(예를 들어) 그래서 우리는 볼 수 있습니다 유형? 또는'training_data.data'를 출력하고 처음 몇 줄을 게시하십시오. – CoryKramer

+0

예제 출력이 나에게 명확하지 않습니다. 그것은 10 개의 객체를 포함하지 않는 것 같습니다. – eickenberg

+0

아, 실제로 마크 업에 없습니다. – eickenberg

답변

0

sklearn.cross_validation.KFold은 이러한 주름을 생성합니다.

from sklearn.cross_validation import KFold 
cv = KFold(180000, 9) 

은 각 단계에서 교육 및 테스트 지표를 산출하는 반복자를 반환합니다. 당신의 분류가 your_classifier, 데이터 (트윗)라고 X하고 목표물 (감정이) y 인 경우에, 당신은 모든 주름에 걸쳐 점수를 얻기 위해 sklearn.cross_validation.cross_val_score를 사용할 수 있습니다

from sklearn.cross_validation import cross_val_score 
scores = cross_val_score(your_classifier, X, y, cv=cv, scoring= ...) 

scoring은 매우입니다 보아야 할 중요한 것. 정확한 예측을 계산하는 정확도와 같은 순진한 스코어러를 사용하는 경우 클래스가 균형을 유지해야하거나 예측자가 더 자주 클래스를 예측할 수 있다는 사실을 알고 있어야합니다. 수업의 균형을 유지하려는 경우 sklearn.cross_validation.StratifiedKFold (doc)을 살펴볼 수도 있습니다.

0

사용할 수있는 시나리오가 많은 cross_validation 모듈이 필요합니다. 하나는 k-fold입니다.

나는 sklearn 매뉴얼 페이지 here에서 붙여 넣기를 복사 해요 :

>>> from sklearn import cross_validation 
>>> X = np.array([[1, 2], [3, 4], [1, 2], [3, 4]]) 
>>> y = np.array([1, 2, 3, 4]) 
>>> kf = cross_validation.KFold(4, n_folds=2) 
>>> len(kf) 
2 
>>> print(kf) 
sklearn.cross_validation.KFold(n=4, n_folds=2) 
>>> for train_index, test_index in kf: 
... print("TRAIN:", train_index, "TEST:", test_index) 
... X_train, X_test = X[train_index], X[test_index] 
... y_train, y_test = y[train_index], y[test_index] 
TRAIN: [2 3] TEST: [0 1] 
TRAIN: [0 1] TEST: [2 3] 
관련 문제