Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将Sklearn GridSearchCV与管道一起使用时如何传递权重_Python_Scikit Learn_Pipeline_Cross Validation_Grid Search - Fatal编程技术网

Python 将Sklearn GridSearchCV与管道一起使用时如何传递权重

Python 将Sklearn GridSearchCV与管道一起使用时如何传递权重,python,scikit-learn,pipeline,cross-validation,grid-search,Python,Scikit Learn,Pipeline,Cross Validation,Grid Search,我正在研究一个文本分类模型,并使用了一个与。下面是代码片段: count_vec=CountVectorizer(ngram_range=(1,2),stop_words=Stopwords_X,min_df=0.01) TFIDF_Transformer=TfidfTransformer(sublinear_tf=True,norm='l2') my_pipeline=Pipeline([('Count_Vectorizer',count_vec),

我正在研究一个文本分类模型,并使用了一个与。下面是代码片段:

count_vec=CountVectorizer(ngram_range=(1,2),stop_words=Stopwords_X,min_df=0.01)
TFIDF_Transformer=TfidfTransformer(sublinear_tf=True,norm='l2')

my_pipeline=Pipeline([('Count_Vectorizer',count_vec),
                    ('TF_IDF',TFIDF_Transformer),
                    ('MultiNomial_NB',MultinomialNB())])

param_grid={'Count_Vectorizer__ngram_range':[(1,1),(1,2),(2,2)],
               'Count_Vectorizer__stop_words':[Stopwords_X,stopwords],
               'Count_Vectorizer__min_df':[0.001,0.005,0.01],
               'TF_IDF__sublinear_tf':[True,False],
               'TF_IDF__norm':['l2'],
               'TF_IDF__smooth_idf':[True,False],
               'MultiNomial_NB__alpha':[0.2,0.4,0.5,0.6],
               'MultiNomial_NB__fit_prior':[True,False]}

# Grid Search CV with pipeline
model=GridSearchCV(estimator=my_pipeline,param_grid=param_grid,
                   scoring=scoring,cv=4,verbose=1,refit=False)
但是,由于数据高度不平衡,我想将权重传递给管道中的分类器。我知道我可以将权重传递给管道中的元素(如下所示):


我的问题是如何在没有形状错误的情况下编译?因为权重只传递给管道中的最终元素(多项式\u NB分类器),而CV对进入管道的X/Y提要进行分区。

GridSearchCV根据交叉验证迭代器处理样本权重的适当分解

GridSearchCV在数据内部调用该方法,并传递训练数据的索引。到目前为止,拟合参数适用于整个数据。现在,此函数依次调用该函数,该函数处理
样本权重
(或其他拟合参数)的拆分 在这方面:

     ...
     return safe_indexing(v, indices)
     ...
这已在以下问题中讨论:


你是说你没有得到任何应该得到的错误吗?@VivekKumar是的,我的理解是fit方法将数据分成4个部分,每次设置一个,而weights参数直接进入管道末端的分类器,导致形状不一致。也许我错过了什么。。。
     ...
     return safe_indexing(v, indices)
     ...