草庐IT

SciKit-Learn

全部标签

python - sklearn选择Kbest : which variables were chosen?

我正在尝试让sklearn为线性回归选择最佳的k个变量(例如k=1)。这行得通,我可以获得R平方,但它没有告诉我哪些变量是最好的。我怎样才能找到它?我有以下形式的代码(真正的变量列表要长得多):X=[]foriinrange(len(df)):X.append([averageindegree[i],indeg3_sum[i],indeg5_sum[i],indeg10_sum[i])training=[]actual=[]counter=0forfoldinrange(500):X_train,X_test,y_train,y_test=crossval.train_test_spl

python - 如何在 scikit-learn 中使用管道调整自定义内核函数的参数

目前我已经使用def函数成功定义了一个自定义内核函数(预计算内核矩阵),现在我正在使用GridSearchCV函数来获取最佳参数。因此,在自定义内核函数中,总共有2个参数需要调整(即下例中的gamm和sea_gamma),而且对于SVR模型,costc参数也必须调整。但直到现在,我只能使用GridSearchCV调整costc参数->请参阅下面的第一部分:示例。我已经搜索了一些类似的解决方案,例如:Isitpossibletotuneparameterswithgridsearchforcustomkernelsinscikit-learn?它说“一种方法是使用Pipeline、SVC

python - Scikit K 均值聚类性能度量

我正在尝试使用K-means方法进行聚类,但我想衡量聚类的性能。我不是专家,但我渴望了解有关聚类的更多信息。这是我的代码:importpandasaspdfromsklearnimportdatasets#loadingthedatasetiris=datasets.load_iris()df=pd.DataFrame(iris.data)#K-Meansfromsklearnimportclusterk_means=cluster.KMeans(n_clusters=3)k_means.fit(df)#K-meanstrainingy_pred=k_means.predict(df)

python - multiprocessing.Pool 挂起如果 child 导致段错误

我想使用multiprocessing.Pool并行应用一个函数。问题在于,如果一个函数调用触发了一个段错误,则Pool将永远挂起。有人知道我如何制作一个Pool来检测何时发生此类事件并引发错误吗?以下示例显示了如何重现它(需要scikit-learn>0.14)importnumpyasnpfromsklearn.ensembleimportgradient_boostingimporttimefrommultiprocessingimportPoolclassBad(object):tree_=Nonedeffit_one(i):ifi==3:#thiswillsegfaultba

python - pyTorch LSTM 中的准确度分数

我一直在跑thisLSTMtutorial在wikigold.conllNERdataset上training_data包含序列和标签的元组列表,例如:training_data=[("Theyalsohaveasongcalled\"wakeup\"".split(),["O","O","O","O","O","O","I-MISC","I-MISC","I-MISC","I-MISC"]),("MajorGeneralJohnC.ScheidtJr.".split(),["O","O","I-PER","I-PER","I-PER"])]然后我写下了这个函数defpredict(i

python - scikits学习和nltk : Naive Bayes classifier performance highly different

我正在比较两个朴素贝叶斯分类器:一个fromNLTK还有一个fromscikit-learn.我正在处理多类分类问题(3类:正(1)、负(-1)和中性(0))。在不执行任何特征选择(即使用所有可用特征)的情况下,使用包含70,000个实例的训练数据集(带有噪声标记,实例分布为17%正、4%负和78%中性),我训练两个分类器,第一个是nltk.NaiveBayesClassifier,第二个是sklearn.naive_bayes.MultinomialNB(fit_prior=True)。训练后,我在30,000个实例的测试集上评估了分类器,得到以下结果:**NLTK'sNaiveBa

python - 处理标签编码的未知值

我如何处理sk-learn中标签编码的未知值?标签编码器只会在检测到新标签时出现异常。我想要的是通过one-hot-encoder对分类变量进行编码。但是,sk-learn不支持字符串。所以我在每一列上都使用了一个标签编码器。我的问题是在我的管道交叉验证步骤中出现了未知标签。基本的单热编码器可以选择忽略这种情况。先验的pandas.getDummies/cat.codes是不够的,因为管道应该处理现实生活中的新鲜传入数据,这些数据也可能包含未知标签。是否可以为此目的使用CountVectorizer? 最佳答案 编辑:最近使用sci

python - XGBoost 用于多标签分类?

是否可以使用XGBoost进行多标签分类?现在我使用OneVsRestClassifier而不是sklearn的GradientBoostingClassifier。它可以工作,但只使用我CPU的一个内核。在我的数据中,我有大约45个特征,任务是用二进制(bool)数据预测大约20列。指标是平均精度(map@7)。如果您有一个简短的代码示例要分享,那就太好了。 最佳答案 一种可能的方法是使用sklearn.multioutput模块中的MultiOutputClassifier,而不是使用用于多类任务的OneVsRestClassi

python - sklearn.ensemble.AdaBoostClassifier 不能接受 SVM 作为 base_estimator?

我正在做一个文本分类任务。现在我想使用ensemble.AdaBoostClassifier和LinearSVC作为base_estimator。但是,当我尝试运行代码时clf=AdaBoostClassifier(svm.LinearSVC(),n_estimators=50,learning_rate=1.0,algorithm='SAMME.R')clf.fit(X,y)发生错误。TypeError:AdaBoostClassifierwithalgorithm='SAMME.R'要求弱学习器支持使用predict_proba方法计算类别概率第一个问题是svm.LinearSVC

python - scikit 学习中的样本权重和类权重选项有什么区别?

我有类(class)不平衡问题,想使用成本敏感学习来解决这个问题。欠采样和过采样赋予类权重以使用修改后的损失函数问题Scikitlearn有2个选项,称为类权重和样本权重。样本权重实际上是在执行选项2)和类别权重选项1)。选项2)是处理类不平衡的推荐方法。 最佳答案 这是相似的概念,但使用sample_weights可以强制估计器更加关注某些样本,使用class_weights可以强制估计器关注某些特定类进行学习。sample_weight=0或class_weight=0基本上意味着估计器根本不需要在学习过程中考虑这些样本/类。因