2017-09-19 6 views
1

Je suis en train de faire scission aléatoire stratifié et je suis nouveau à ceque je fais stratifiedsplit et sortir d'une erreur liée, je ne unerstand pourquoi

from sklearn import preprocessing 
from sklearn import cross_validation 
from sklearn.tree import DecisionTreeClassifier 
from sklearn.metrics import accuracy_score 
from sklearn.metrics import precision_score 
from sklearn.metrics import recall_score 
from sklearn.model_selection import StratifiedShuffleSplit 

data = featureFormat(my_dataset, features_list, sort_keys = True) 
labels, features = targetFeatureSplit(data) 
scaler = preprocessing.MinMaxScaler() 
features = scaler.fit_transform(features) 


split = StratifiedShuffleSplit(n_splits=3, test_size=0.2, random_state=42) 
print len(features), len(labels) 
for train_index,test_index in split.split(features, labels): 
    print("TRAIN:", train_index, "TEST:", test_index) 
    features_train,features_test = features_train[train_index],features_test[test_index] 
    labels_train,labels_test = labels_train[train_index],labels_test[test_index] 

C'est l'erreur que je reçois

enter image description here

Même si la limite est jusqu'à 143 100 montrant sa

Répondre

0

Vous utilisez le nom de la variable erronée.
Ces lignes:

features_train,features_test = features_train[train_index],features_test[test_index] 
labels_train,labels_test = labels_train[train_index],labels_test[test_index] 

devrait être:

features_train,features_test = features[train_index],features[test_index] 
labels_train,labels_test = labels[train_index],labels[test_index] 

Vous utilisez essentiellement les variables avant même qu'ils soient déclarés. Vous devez découper les fonctions et les étiquettes d'origine.