2017-04-05 47 views
2

不知道如何解决。任何帮助非常感谢。我看到THI Vectorization: Not a valid collection但不知道如果我的理解低于这个单数组数组(<function train at 0x7f3a311320d0>,dtype = object)不能被认为是有效的集合

train = df1.iloc[:,[4,6]] 
      target =df1.iloc[:,[0]] 

      def train(classifier, X, y): 
       X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=33) 

       classifier.fit(X_train, y_train) 
       print ("Accuracy: %s" % classifier.score(X_test, y_test)) 
       return classifier 

     trial1 = Pipeline([ 
      ('vectorizer', TfidfVectorizer()), 
      ('classifier', MultinomialNB()), 
     ]) 

     train(trial1, train, target) 

错误:

----> 6 train(trial1, train, target) 

    <ipython-input-140-ac0e8d32795e> in train(classifier, X, y) 
      1 def train(classifier, X, y): 
    ----> 2  X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=33) 
      3 
      4  classifier.fit(X_train, y_train) 
      5  print ("Accuracy: %s" % classifier.score(X_test, y_test)) 

    /home/manisha/anaconda3/lib/python3.5/site-packages/sklearn/model_selection/_split.py in train_test_split(*arrays, **options) 
     1687   test_size = 0.25 
     1688 
    -> 1689  arrays = indexable(*arrays) 
     1690 
     1691  if stratify is not None: 

    /home/manisha/anaconda3/lib/python3.5/site-packages/sklearn/utils/validation.py in indexable(*iterables) 
     204   else: 
     205    result.append(np.array(X)) 
    --> 206  check_consistent_length(*result) 
     207  return result 
     208 

    /home/manisha/anaconda3/lib/python3.5/site-packages/sklearn/utils/validation.py in check_consistent_length(*arrays) 
     175  """ 
     176 
    --> 177  lengths = [_num_samples(X) for X in arrays if X is not None] 
     178  uniques = np.unique(lengths) 
     179  if len(uniques) > 1: 

    /home/manisha/anaconda3/lib/python3.5/site-packages/sklearn/utils/validation.py in <listcomp>(.0) 
     175  """ 
     176 
    --> 177  lengths = [_num_samples(X) for X in arrays if X is not None] 
     178  uniques = np.unique(lengths) 
     179  if len(uniques) > 1: 

    /home/manisha/anaconda3/lib/python3.5/site-packages/sklearn/utils/validation.py in _num_samples(x) 
     124   if len(x.shape) == 0: 
     125    raise TypeError("Singleton array %r cannot be considered" 
    --> 126        " a valid collection." % x) 
     127   return x.shape[0] 
     128  else: 

    TypeError: Singleton array array(<function train at 0x7f3a311320d0>, dtype=object) cannot be considered a valid collection. 

____ 

不知道如何解决。任何帮助非常感谢。我看到THI Vectorization: Not a valid collection但不知道如果我因为你的函数train口罩您的变量train理解这一点

回答

3

此错误出现,因此它被传递给自身。

说明

你定义一个变量,火车这样的:

train = df1.iloc[:,[4,6]] 

那么一些行之后,可以定义这样的方法火车:

def train(classifier, X, y): 

那么究竟是什么恰巧是,您的旧版train已更新为新版本。这意味着train现在不会按照您的要求指向Dataframe对象,而是指向您定义的函数。在错误它被清除。

array(<function train at 0x7f3a311320d0>, dtype=object) 

功能列车错误语句中。

重命名他们中的一个(该变量或方法)。 建议:将函数重命名为trainingtraining_func或其他类似名称。

相关问题