小编del*_*onX的帖子

scikit中的OneVsRestClassifier和MultiOutputClassifier有什么区别?

有人可以解释(举例说明)scikit-learn中OneVsRestClassifierMultiOutputClassifier之间的区别是什么?

我已阅读文档,我知道我们使用:

  • OneVsRestClassifier - 当我们想要进行多类或多标记分类时,它的策略包括为每个类拟合一个分类器.对于每个分类器,该类适用于所有其他类.(这很清楚,这意味着多类/多标记分类的问题被分解为多个二元分类问题).
  • MultiOutputClassifier - 当我们想要进行多目标分类时(这是什么?),它的策略包括为每个目标拟合一个分类器(目标是什么意思?)

我已经使用OneVsRestClassifier进行多标签分类,我可以理解它是如何工作的,但后来我找到了MultiOutputClassifier,并且无法理解它与OneVsRestClassifier的工作方式有何不同.

python classification scikit-learn multilabel-classification multiclass-classification

23
推荐指数
2
解决办法
1万
查看次数

在Jupyter Notebook中%matplotlib内联后使用%matplotlib笔记本不起作用

我正在使用Jupyter Notebook绘制饼图数字.

在我的代码的第一个单元格中,我有一个魔术命令%matplotlib inline,在这个魔术命令后我运行我的代码,一切正常,我的图形呈现.

但在第二个单元格中,当我设置%matplotlib notebook交互式绘图时,我的图形在运行第二个单元格后将无法呈现.

我需要重新启动内核并%matplotlib notebook再次运行单元格,并且%matplotlib inline在此之前无法运行命令.

这里是我的代码,第一个单元格%matplotlib inline,这使得罚款:

import matplotlib.pyplot as plt

%matplotlib inline

labels = "No", "Yes"
sizes = [100, 50]

fig, ax = plt.subplots(figsize=(6, 6))

_, texts, autotexts = ax.pie(sizes, explode=explode, labels=labels, colors=colors, autopct='%1.1f%%',
             shadow=False, startangle=90)

ax.axis('equal')
Run Code Online (Sandbox Code Playgroud)

之后,我有第二个单元格具有相同的代码,只是%matplotlib inline改为%matplotlib notebook.在运行此单元格后,图形将不会呈现,我需要重新启动内核并再次运行此单元格.

为什么?

python matplotlib jupyter-notebook

19
推荐指数
2
解决办法
2万
查看次数

UserWarning:标签不是:NUMBER:出现在所有培训示例中

我正在做多标签分类,我尝试为每个文档预测正确的标签,这是我的代码:

mlb = MultiLabelBinarizer()
X = dataframe['body'].values 
y = mlb.fit_transform(dataframe['tag'].values)

classifier = Pipeline([
    ('vectorizer', CountVectorizer(lowercase=True, 
                                   stop_words='english', 
                                   max_df = 0.8, 
                                   min_df = 10)),
    ('tfidf', TfidfTransformer()),
    ('clf', OneVsRestClassifier(LinearSVC()))])

predicted = cross_val_predict(classifier, X, y)
Run Code Online (Sandbox Code Playgroud)

运行我的代码时,我收到多个警告:

UserWarning: Label not :NUMBER: is present in all training examples.
Run Code Online (Sandbox Code Playgroud)

当我打印出预测标签和真实标签时,cca一半的所有文件都有标签为空的预测.

为什么会发生这种情况,是否与在训练运行时打印出的警告有关?我怎样才能避免那些空洞的预测呢?


EDIT01: 使用其他估算器时也会发生这种情况LinearSVC().

我试过了RandomForestClassifier(),它也给出了空洞的预测.奇怪的是,当我cross_val_predict(classifier, X, y, method='predict_proba')用于预测每个标签的概率而不是二元决策0/1时,每个预测集总是至少有一个标签,给定文档的概率> 0.所以我不知道为什么这个标签没有选择二元决策?或者是以不同于概率的方式评估二元决策?

EDIT02: 我找到了一个老职位,其中OP处理类似的问题.这是同样的情况吗?

python classification scikit-learn text-classification multilabel-classification

9
推荐指数
1
解决办法
2425
查看次数

从父目录内的python模块导入到子目录内的jupyter笔记本文件

我有这样的文件结构:

project_folder/
     notebooks/
          notebook01.ipynb
          notebook02.ipynb
          ...
          notebookXY.ipynb
     module01.py
     module02.py
     module03.py
Run Code Online (Sandbox Code Playgroud)

.ipynb文件notebook/夹内的文件中,我想从module01.py, module02.py和导入类和函数module03.py

我在这个问题中找到了答案,可以在每个笔记本中使用以下代码行并每次将这些行作为第一个单元格运行:

import os
import sys
module_path = os.path.abspath(os.path.join('..'))
if module_path not in sys.path:
    sys.path.append(module_path)
Run Code Online (Sandbox Code Playgroud)

请问有更好的方法吗?如果.ipynb文件notebooks/夹中有很多文件,我是否必须在每个文件的开头粘贴这些代码行?有没有更好、更简约或更干净的方式?

python python-module python-import jupyter-notebook

8
推荐指数
2
解决办法
3855
查看次数

如何在CLion中设置基本的openMP项目

我正在尝试运行简单的OpenMP程序CLion IDE.当我运行它时,我得到一个错误:

CMakeFiles\openmp_test_clion.dir/objects.a(main.cpp.obj): In function `main':
D:/.../openmp_test_clion/main.cpp:9: undefined reference to 'omp_get_thread_num'
collect2.exe: error: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

#include <stdio.h>
#include <omp.h>

int main()
{
    int id;
#pragma omp parallel private(id)
    {
        id = omp_get_thread_num();
        printf("%d: Hello World!\n", id);
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这是我的CMakeLists.txt:

cmake_minimum_required(VERSION 3.6)
project(openmp_test_clion)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

set(SOURCE_FILES main.cpp)
add_executable(openmp_test_clion ${SOURCE_FILES})

message(STATUS "Checking OpenMP")
find_package(OpenMP)
IF(OPENMP_FOUND)
    message("Found OpenMP!)
    # add flags for OpenMP
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
    set(CMAKE_SHARED_LINKER_FLAGS …
Run Code Online (Sandbox Code Playgroud)

c++ mingw cmake openmp clion

6
推荐指数
1
解决办法
8624
查看次数

使用 OneVsRestClassifier 时 sklearn.svm.SVC 的哪个 decision_function_shape?

我正在做多标签分类,我试图预测问题的正确标签:

(X = 问题,y = X 中每个问题的标签列表)。

我想知道,哪个decision_function_shapeforsklearn.svm.SVC应该与OneVsRestClassifier?

从文档中我们可以看到decision_function_shape可以有两个值'ovo''ovr'

decision_function_shape: '卵内', 'OVR'或无,默认=无

是否像所有其他分类器一样返回形状为 (n_samples, n_classes) 的一对一 ('ovr') 决策函数,或具有形状 (n_samples) 的 libsvm 的原始一对一 ('ovo') 决策函数, n_classes * (n_classes - 1) / 2)。None 的默认值当前将表现为向后兼容的“ovo”并引发弃用警告,但将在 0.19 中更改“ovr”。

但我仍然不明白这两者之间的区别是什么:

# First decision_function_shape set to 'ovo'
estim = OneVsRestClassifier(SVC(kernel='linear', decision_function_shape ='ovo'))

# Second decision_function_shape set to 'ovr'
estim = OneVsRestClassifier(SVC(kernel='linear', decision_function_shape ='ovr'))
Run Code Online (Sandbox Code Playgroud)

哪个decision_function_shape应该用于多标签分类问题?

编辑: 问题询问类似的事情而没有答案。

python svm scikit-learn text-classification multilabel-classification

6
推荐指数
1
解决办法
1万
查看次数

如何检查JavaFX ComboBox中是否选择了任何项目

检查在JavaFX ComboBox中是否选择了任何项目或者是否没有选择项目的简单方法是什么?

检查处于此状态的ComboBox应该返回FALSE: 处于此状态的ComboBox应返回FALSE

检查处于此状态的ComboBox应返回TRUE: 处于此状态的ComboBox应返回TRUE

java combobox javafx

4
推荐指数
2
解决办法
1万
查看次数

Building conda skeleton from pypi package throws error

我正在尝试按照http://conda.pydata.org/docs/build_tutorials/pkgs.html上的教程从pypi 创建conda框架pyinstrument

当我调用command时conda skeleton pypi pyinstrument,它引发以下错误:

C:\WINDOWS\system32>conda skeleton pypi pyinstrument
Warning, the following versions were found for pyinstrument
0.10.1
0.11
0.12
0.13
0.13.1
Using 0.13.1
Use --version to specify a different version.
Using url https://pypi.python.org/packages/64/56/d7a0d48973dcf58ea74d5f004e16e9496
Downloading pyinstrument
Using cached download
Unpacking pyinstrument...
done
working in C:\Users\Peter\AppData\Local\Temp\tmpi40k4yslconda_skeleton_pyinstrumen

The following NEW packages will be INSTALLED:

    pip:            8.1.2-py35_0
    python:         3.5.2-0
    pyyaml:         3.12-py35_0
    setuptools:     27.2.0-py35_1
    vs2015_runtime: 14.0.25123-0
    wheel:          0.29.0-py35_0

Applying patch: 'C:\\Users\\Peter\\AppData\\Local\\Temp\\tmpi40k4yslconda_skeleton
        Error:
            Cannot use …
Run Code Online (Sandbox Code Playgroud)

python pypi anaconda conda

4
推荐指数
1
解决办法
905
查看次数

'texture2D':在Forward Compatibile上下文中删除了该功能

我正在尝试使用GLSL这里实现5x5卷积滤镜(Find Edges)是我的.glsl源代码:

#version 150
#define SIZE 25

// A texture is expected
uniform sampler2D Texture;

// The vertex shader fill feed this input
in vec2 FragTexCoord;

// The final color
out vec4 FragmentColor;

float matr[25];
float matg[25];
float matb[25];

vec4 get_pixel(in vec2 coords, in float x, in float y) {
   return texture2D(Texture, coords + vec2(x, y));
}

float convolve(in float[SIZE] kernel, in float[SIZE] matrix) {
   float res = 0.0;
   for (int i = 0; i < …
Run Code Online (Sandbox Code Playgroud)

c++ opengl glsl

3
推荐指数
1
解决办法
1460
查看次数

如何从堆栈交换站点获取数据

我需要从特定的堆栈交换站点获取数据.

我怎样才能最有效地完成这项工作?我可以使用某种API吗?我需要将它们保存到某种数据库中.

python scrapy stackexchange-api

3
推荐指数
1
解决办法
141
查看次数

是否可以在 IntelliJ IDEA 2016 调试器中一键将变量对象列表折叠到特定深度?

是否可以将IntelliJ IDEA 2016调试器中的对象变量列表折叠到特定深度完全折叠折叠?

以下是我需要通过一键/单击执行的操作的示例:

崩溃前: 在此输入图像描述

崩溃后: 在此输入图像描述

如果能够进行这样的列表折叠,而不需要单独单击列表中的每个项目,而只需单击列表(或具有嵌套对象的其他数据结构),就会舒服得多。

java debugging jetbrains-ide intellij-idea

1
推荐指数
1
解决办法
1204
查看次数