有人可以解释(举例说明)scikit-learn中OneVsRestClassifier和MultiOutputClassifier之间的区别是什么?
我已阅读文档,我知道我们使用:
我已经使用OneVsRestClassifier进行多标签分类,我可以理解它是如何工作的,但后来我找到了MultiOutputClassifier,并且无法理解它与OneVsRestClassifier的工作方式有何不同.
python classification scikit-learn multilabel-classification multiclass-classification
我正在使用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
.在运行此单元格后,图形将不会呈现,我需要重新启动内核并再次运行此单元格.
为什么?
我正在做多标签分类,我尝试为每个文档预测正确的标签,这是我的代码:
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一半的所有文件都有标签为空的预测.
为什么会发生这种情况,是否与在训练运行时打印出的警告有关?我怎样才能避免那些空洞的预测呢?
LinearSVC()
.
我试过了RandomForestClassifier()
,它也给出了空洞的预测.奇怪的是,当我cross_val_predict(classifier, X, y, method='predict_proba')
用于预测每个标签的概率而不是二元决策0/1时,每个预测集总是至少有一个标签,给定文档的概率> 0.所以我不知道为什么这个标签没有选择二元决策?或者是以不同于概率的方式评估二元决策?
EDIT02: 我找到了一个老职位,其中OP处理类似的问题.这是同样的情况吗?
python classification scikit-learn text-classification multilabel-classification
我有这样的文件结构:
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/
夹中有很多文件,我是否必须在每个文件的开头粘贴这些代码行?有没有更好、更简约或更干净的方式?
我正在尝试运行简单的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) 我正在做多标签分类,我试图预测问题的正确标签:
(X = 问题,y = X 中每个问题的标签列表)。
我想知道,哪个decision_function_shape
forsklearn.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
我正在尝试按照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) 我正在尝试使用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) 我需要从特定的堆栈交换站点获取数据.
我怎样才能最有效地完成这项工作?我可以使用某种API吗?我需要将它们保存到某种数据库中.
是否可以将IntelliJ IDEA 2016
调试器中的对象变量列表折叠到特定深度或完全折叠折叠?
以下是我需要通过一键/单击执行的操作的示例:
如果能够进行这样的列表折叠,而不需要单独单击列表中的每个项目,而只需单击列表(或具有嵌套对象的其他数据结构),就会舒服得多。