1

내가 가지고 내 featuresets 같은 형태의 요소가 포함 된 사전 :특징 집합을 사전으로 제공하는 교차 유효성 검사 및 임의 포리스트 분류 도구를 구현하는 방법은 무엇입니까?

({0: 0.48447204968944096, 
    1: 0.035093167701863354, 
    2: 0.07453416149068323, 
    3: 0.046583850931677016, 
    4: 0.0, 
    5: 0.09316770186335403, 
    ... 
    162: 1, 
    163: 1.0}, 'male') 

나는 sklearn 라이브러리에서 cross_val_score 또는 cross_val_predict을 구현하려고, 항상 결과가 "

말을 몇 가지 오류를 보여주는 float 값은 dict 일 수 없습니다. "

파이썬에서 선형 SVC 및 임의 포리스트 분 류기를 사용하여 교차 유효성 검증을 구현하는 데 도움을 줄 수 있습니까? 또한

train_set, test_set = featuresets[1:1628], featuresets[1630:3257] 
np.asarray(train_set) 
np.asarray(test_set) 
clf = SVC(kernel='linear', C=5) 
predicted = cross_val_predict(clf, train_set, test_set, cv=10) 
metrics.accuracy_score(test_set, predicted) 

, 내가 여기 kfold 교차 유효성 검사를 구현하는 방법을지고 있지 않다 :

나는이 전에 시도했다.

+0

데이터를 numpy 배열로 변환하십시오. 모두 – lejlot

+0

위에 표시된 데이터는 두 개의 요소가있는 튜플입니다. 첫 번째는 dict이고 다른 하나는 문자열입니다. 문자열을 예측 변수로하는 목표 변수입니다. 또한'cross_val_predict'의 사용법이 잘못되었습니다. –

+0

'featuresets' 유형은 무엇입니까? – Tonechas

답변

1

우리가 먼저 필요한 모듈을 가져 보자

import numpy as np 
from sklearn.ensemble import RandomForestClassifier 
from sklearn.model_selection import cross_val_score 

을 당신은이 같은 임의 숲 분류의 인스턴스를 만들 수 있습니다

clf = RandomForestClassifier() 

는 그런 다음 featuresets를로드해야합니다 (I는 '돈을 이 코드는 테스트 할 수 없으므로이 데이터가 있으므로 사전을 통해 예를 들어 숫자를 사용하여 범주 형 변수를 변환하십시오.

featuresets = # your code here 
gender = {'male': 0, 'female': 1} 
,363,210

다음 단계는 NumPy와 배열 등의 기능과 레이블을 저장하기에 구성되어

이제
X = np.asarray([[i[1] for i in sorted(d.items())] for d, _ in featuresets]) 
y = np.asarray([gender[s] for _, s in featuresets]) 

당신이 데이터를 분할 모델을 피팅하고 계산하여 데이터 집합에서 임의 숲 분류의 정확성을 추정 할 준비가 연속 10 점 득점 (매번 다른 스플릿으로) :

위에서 발췌 문장을 실행하면 10 점 득점 목록을 얻을 수 있습니다.

+0

랜덤 포레스트 분류기는 어떻게됩니까? 이 방법으로 작동할까요? –

+0

질문에 더 잘 부합하도록 내 대답을 편집했습니다. – Tonechas

+0

예, 작동 중입니다. 시간과 노력에 감사드립니다 :) –