草庐IT

SciKit-Learn

全部标签

machine-learning - 首先做什么 : Feature Selection or Model Parameters Setting?

这更像是一个理论问题。我正在使用scikit-learn包来执行一些NLP任务。Sklearn提供了许多方法来执行特征选择和模型参数设置。我想知道我应该先做什么。如果我使用univariatefeatureselection,很明显我应该先进行特征选择,然后使用所选特征调整估计器的参数。但是如果我想使用recursivefeatureelimination怎么办??我应该先用gridsearch设置参数吗?使用所有原始特征然后执行特征选择?或者我应该先选择特征(使用估算器的默认参数),然后使用所选特征设置参数?编辑我遇到了与here几乎相同的问题.到那时,还没有解决办法。有谁知道现在是

python - 使用 sklearn 的 KFold 分离 Pandas 数据框

我已经通过下面的代码获得了训练集和测试集的索引。df=pandas.read_pickle(filepath+filename)kf=KFold(n_splits=n_splits,shuffle=shuffle,random_state=randomState)result=next(kf.split(df),None)#traincanbeaccessedwithresult[0]#testcanbeaccessedwithresult[1]我想知道是否有更快的方法将它们与我检索到的行索引分别分成2个数据帧。 最佳答案 你需要D

python - python中最快的成对距离度量

我有一个一维数字数组,想计算所有成对的欧氏距离。我有一种方法(感谢SO)通过广播执行此操作,但它效率低下,因为它计算每个距离两次。而且它的扩展性不好。这是一个示例,它通过包含1000个数字的数组给出了我想要的结果。importnumpyasnpimportrandomr=np.array([random.randrange(1,1000)for_inrange(0,1000)])dists=np.abs(r-r[:,None])我可以使用scipy/numpy/scikit-learn中最快的实现是什么,因为它必须扩展到一维数组具有>10k值的情况。注意:矩阵是对称的,所以我猜测通过解

python - 基于列的sklearn分层抽样

我有一个相当大的CSV文件,其中包含我读入Pandas数据框的亚马逊评论数据。我想将数据拆分为80-20(训练测试),但在这样做时我想确保拆分数据按比例代表一列(类别)的值,即所有不同类别的评论都出现在火车中并按比例测试数据。数据如下所示:**ReviewerID****ReviewText****Categories****ProductId**1212goodproductMobile144444251233willbuyagaindrugs3245325432notrecomendeddvd789654123我使用以下代码来执行此操作:importpandasaspdMeta=p

python - 使用 numpy/scikit 函数保持 pandas 结构

我正在使用来自pandas的出色的read_csv()函数,它给出:In[31]:data=pandas.read_csv("lala.csv",delimiter=",")In[32]:dataOut[32]:Int64Index:12083entries,0to12082Columns:569entries,REGIONCtoSCALEKERdtypes:float64(51),int64(518)但是当我应用来自scikit-learn的函数时,我丢失了有关列的信息:fromsklearnimportpreprocessingpreprocessing.scale(data)给出

python - 高斯混合模型 : Difference between Spark MLlib and scikit-learn

我正在尝试对数据集样本使用高斯混合模型。我同时使用了MLlib(与pyspark)和scikit-learn,得到了截然不同的结果,scikit-learn一个看起来更逼真。frompyspark.mllib.clusteringimportGaussianMixtureasSparkGaussianMixturefromsklearn.mixtureimportGaussianMixturefrompyspark.mllib.linalgimportVectorsScikit-learn:local=pd.DataFrame([x.asDict()forxindf.sample(0.

python - sklearn 分类器获取 ValueError : bad input shape

我有一个csv,结构是CAT1,CAT2,TITLE,URL,CONTENT,CAT1,CAT2,TITLE,CONTENT为中文。我想用X(TITLE)和特征(CAT1,CAT2)训练LinearSVC或MultinomialNB,两者都会出现此错误。下面是我的代码:PS:我通过这个例子写了下面的代码scikit-learntext_analyticsimportnumpyasnpimportcsvfromsklearn.feature_extraction.textimportTfidfVectorizerfromsklearn.svmimportLinearSVCfromskle

python - sklearn 分类器获取 ValueError : bad input shape

我有一个csv,结构是CAT1,CAT2,TITLE,URL,CONTENT,CAT1,CAT2,TITLE,CONTENT为中文。我想用X(TITLE)和特征(CAT1,CAT2)训练LinearSVC或MultinomialNB,两者都会出现此错误。下面是我的代码:PS:我通过这个例子写了下面的代码scikit-learntext_analyticsimportnumpyasnpimportcsvfromsklearn.feature_extraction.textimportTfidfVectorizerfromsklearn.svmimportLinearSVCfromskle

python - 你能修复 scikit 学习中分类器的假阴性率吗

我正在使用RandomForestclassifer在scikit中学习两个类的不平衡数据集。与误报相比,我更担心假阴性。是否可以固定假阴性率(比如1%)并要求scikit以某种方式优化假阳性率?如果这个分类器不支持,是否有另一个分类器支持? 最佳答案 我相信sklearn中类不平衡的问题可以通过使用class_weight参数来部分解决。这个参数要么是一个字典,其中每个类都被分配了一个统一的权重,要么是一个字符串,告诉sklearn如何构建这个字典。例如,将此参数设置为“自动”,将按其频率的倒数对每个类别进行加权。通过为较少出现的

python - 你能修复 scikit 学习中分类器的假阴性率吗

我正在使用RandomForestclassifer在scikit中学习两个类的不平衡数据集。与误报相比,我更担心假阴性。是否可以固定假阴性率(比如1%)并要求scikit以某种方式优化假阳性率?如果这个分类器不支持,是否有另一个分类器支持? 最佳答案 我相信sklearn中类不平衡的问题可以通过使用class_weight参数来部分解决。这个参数要么是一个字典,其中每个类都被分配了一个统一的权重,要么是一个字符串,告诉sklearn如何构建这个字典。例如,将此参数设置为“自动”,将按其频率的倒数对每个类别进行加权。通过为较少出现的