我正在寻找一个Python包来执行有效的恒定Q变换(即使用FFT来加速该过程).我找到了一个名为CQ-NSGT/sliCQ Toolbox的工具箱,但是我收到以下错误:
File "build\bdist.win32\egg\nsgt\__init__.py", line 37, in <module>
File "build\bdist.win32\egg\nsgt\audio.py", line 7, in <module>
File "C:\Python27\lib\site-packages\scikits\audiolab\__init__.py", line 25, in <module>
from pysndfile import formatinfo, sndfile
File "C:\Python27\lib\site-packages\scikits\audiolab\pysndfile\__init__.py", line 1, in <module>
from _sndfile import Sndfile, Format, available_file_formats, \
File "numpy.pxd", line 30, in scikits.audiolab.pysndfile._sndfile (scikits\audiolab\pysndfile\_sndfile.c:9632)
ValueError: numpy.dtype does not appear to be the correct type object
Run Code Online (Sandbox Code Playgroud)
Numpy(我怀疑)或scikit audiolab更可能出现问题.你知道问题的来源吗?
我正在尝试使用pip工具安装scikits.audiolab.Pip似乎python setup.py egg_info从scikits.audiolab源目录中运行命令.当它这样做时,我收到此错误:
Andrews-MacBook-Pro-2:scikits.audiolab-0.11.0 andrewhannigan$ pip install scikits.audiolab
Collecting scikits.audiolab
Using cached scikits.audiolab-0.11.0.tar.gz
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 20, in <module>
File "/private/var/folders/xb/qwlsm44s1wxfr82kytrgjtl80000gn/T/pip-build-vSZaU8/scikits.audiolab/setup.py", line 32, in <module>
from numpy.distutils.core import setup
ImportError: No module named numpy.distutils.core
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/xb/qwlsm44s1wxfr82kytrgjtl80000gn/T/pip-build-vSZaU8/scikits.audiolab
Run Code Online (Sandbox Code Playgroud)
问题显然是无法导入numpy.distutils.core.查看setup.py脚本,这个导入很早就发生了(在下面的代码片段的底部):
#! /usr/bin/env python
# Last Change: Fri Mar 27 05:00 PM 2009 J
# Copyright (C) 2006-2007 …Run Code Online (Sandbox Code Playgroud) 我在Python中使用scikits.learn训练了一堆RBF SVM,然后挑选了结果.这些用于图像处理任务,我想要进行测试的一件事是在一些测试图像的每个像素上运行每个分类器.也就是说,从以像素(i,j)为中心的窗口中提取特征向量,在该特征向量上运行每个分类器,然后继续前进到下一个像素并重复.这对于Python来说太慢了.
澄清:当我说"这太慢了......"我的意思是即使是scikits.learn使用的Libsvm底层代码太慢了.我实际上正在为GPU编写手动决策函数,因此每个像素的分类是并行发生的.
我是否可以使用Pickle加载分类器,然后获取描述如何从特征向量计算决策的某种属性,然后将该信息传递给我自己的C代码?在线性SVM的情况下,我可以提取权重向量和偏置向量,并将它们作为输入添加到C函数中.但是对于RBF分类器来说,相同的事情是什么,以及如何从scikits.learn对象获取该信息?
补充:首先尝试解决方案.
看起来分类器对象具有support_vectors_包含支持向量作为数组的每一行的属性.还有一个属性dual_coef_是1乘以len(support_vectors_)系数的数组.从非线性SVM的标准教程中可以看出,应该执行以下操作:
v待测数据点的特征向量.这将是一个与行的长度相同的向量support_vectors_.i中support_vectors_,计算平方欧几里德距离d[i]该支持向量和之间v.t[i]为gamma * exp{-d[i]}其中gamma是RBF参数.dual_coef_[i] * t[i]在所有i.intercept_将scikits.learn分类器的属性值添加到此总和.补充:在此文档链接的编号第9页上,它提到intercept_分类器的属性确实包含偏差项.我已更新上述步骤以反映这一点.
我正在使用Python,我已经使用本教程实现了PCA .
一切都很好,我得到了协方差,我做了一个成功的转换,使它对原始尺寸没有问题.
但是我该如何进行美白?我尝试用特征值划分特征向量:
S, V = numpy.linalg.eig(cov)
V = V / S[:, numpy.newaxis]
Run Code Online (Sandbox Code Playgroud)
并使用V来转换数据,但这导致了奇怪的数据值.请问有人可以对此有所了解吗?
是
class sklearn.cross_validation.ShuffleSplit(
n,
n_iterations=10,
test_fraction=0.10000000000000001,
indices=True,
random_state=None
)
Run Code Online (Sandbox Code Playgroud)
在scikit-learn中10*10倍CV的正确方法?(通过将random_state更改为10个不同的数字)
因为我没有发现任何random_state参数Stratified K-Fold或K-Fold从单独的K-Fold,始终是相同的数据相同.
如果ShuffleSplit是正确的,一个问题是提到它
注意:与其他交叉验证策略相反,随机拆分并不能保证所有折叠都不同,尽管这对于相当大的数据集来说仍然很可能
这总是10*10倍CV的情况?
我想在即将推出的项目中使用scikit-learn,我绝对无法安装它.我可以通过从源代码构建它们或通过pip安装其他软件包而不会出现问题.对于scikit-learn,我尝试在GitHub上克隆项目并通过pip安装但没有成功.有人可以帮忙吗?这是我的一部分pip.log:
Downloading/unpacking scikit-learn
Running setup.py egg_info for package scikit-learn
Warning: Assuming default configuration (scikits/learn/{setup_scikits.learn,setup}.py was not found)Warning: Assuming default configuration (sklearn/svm/tests/{setup_tests,setup}.py was not found)Appending scikits.learn configuration to
Ignoring attempt to set 'name' (from '' to 'scikits.learn')
Appending sklearn.check_build configuration to sklearn
Ignoring attempt to set 'name' (from 'sklearn' to 'sklearn.check_build')
Appending sklearn.svm.tests configuration to sklearn.svm
Ignoring attempt to set 'name' (from 'sklearn.svm' to 'sklearn.svm.tests')
blas_opt_info:
FOUND:
extra_link_args = ['-Wl,-framework', '-Wl,Accelerate']
define_macros = [('NO_ATLAS_INFO', 3)]
extra_compile_args = …Run Code Online (Sandbox Code Playgroud) 我想用以下方法迭代拟合曲线到python中的数据:
我可以拟合多项式曲线,如下所示:
vals = array([0.00441025, 0.0049001 , 0.01041189, 0.47368389, 0.34841961,
0.3487533 , 0.35067096, 0.31142986, 0.3268407 , 0.38099566,
0.3933048 , 0.3479948 , 0.02359819, 0.36329588, 0.42535543,
0.01308297, 0.53873956, 0.6511364 , 0.61865282, 0.64750302,
0.6630047 , 0.66744816, 0.71759617, 0.05965622, 0.71335208,
0.71992683, 0.61635697, 0.12985441, 0.73410642, 0.77318621,
0.75675988, 0.03003641, 0.77527201, 0.78673995, 0.05049178,
0.55139476, 0.02665514, 0.61664748, 0.81121749, 0.05521697,
0.63404375, 0.32649395, 0.36828268, 0.68981099, 0.02874863,
0.61574739])
x_values = np.linspace(0, 1, len(vals))
poly_degree = 3
coeffs = np.polyfit(x_values, vals, poly_degree)
poly_eqn = np.poly1d(coeffs)
y_hat = poly_eqn(x_values)
Run Code Online (Sandbox Code Playgroud)
如何执行步骤2和3?
我刚开始尝试通过scikits提供一个很好的bootstrapping包:https: //github.com/cgevans/scikits-bootstrap
但是我在尝试从线性回归估计相关系数的置信区间时遇到了问题.返回的置信区间完全在原始统计量的范围之外.
这是代码:
import numpy as np
from scipy import stats
import bootstrap as boot
np.random.seed(0)
x = np.arange(10)
y = 10 + 1.5*x + 2*np.random.randn(10)
r0 = stats.linregress(x, y)[2]
def my_function(y):
return stats.linregress(x, y)[2]
ci = boot.ci(y, statfunction=my_function, alpha=0.05, n_samples=1000, method='pi')
Run Code Online (Sandbox Code Playgroud)
这产生ci = [ - 0.605,0.644]的结果,但原始统计量为r0 = 0.894.
我在R中试过这个并且似乎在那里工作得很好:ci横跨r0如预期的那样.
请帮忙!
我试图sklearn.metrics.roc_auc_score使用以下方法计算ROC曲线下的面积:
roc_auc = sklearn.metrics.roc_auc_score(actual, predicted)
Run Code Online (Sandbox Code Playgroud)
其中actual是具有地面实况分类标签predicted的二元向量,并且是具有我的分类器预测的分类标签的二元向量.
但是,roc_auc我得到的值与准确度值(标签正确预测的样本比例)完全相似.这不是一次性的事情.我在各种参数值上尝试我的分类器,每次得到相同的结果.
我在这做错了什么?
我目前正在尝试在Windows 10上为Python 3.5.4安装scikits.audiolab 0.11.0,它需要来自http://www.mega-nerd.com/libsndfile/的 libsndfile .我已将此安装到我的conda虚拟环境中,以便文件路径如下所示:
C:\Users\MXJ719\AppData\Local\Continuum\anaconda3\envs\wavenet\libs\libsndfile
Run Code Online (Sandbox Code Playgroud)
然后我在其中编辑site.cfg文件
C:\Users\MXJ719\AppData\Local\Continuum\anaconda3\envs\wavenet\Lib\site-packages\numpy\distutils
Run Code Online (Sandbox Code Playgroud)
阅读:
[sndfile]
library_dirs = C:\Users\MXJ719\AppData\Local\Continuum\anaconda3\envs\wavenet\libs\libsndfile;C:\Users\MXJ719\AppData\Local\Continuum\anaconda3\envs\wavenet\libs\libsndfile\lib
include_dirs = C:\Users\MXJ719\AppData\Local\Continuum\anaconda3\envs\wavenet\libs\libsndfile;C:\Users\MXJ719\AppData\Local\Continuum\anaconda3\envs\wavenet\libs\libsndfile\include
sndfile_libs = sndfile-1
Run Code Online (Sandbox Code Playgroud)
然后我在anaconda提示符下激活我的wavenet环境并输入:
pip install scikits.audiolab==0.11.0
Run Code Online (Sandbox Code Playgroud)
它给出了以下错误和Traceback:
(wavenet) C:\Windows>pip install scikits.audiolab==0.11.0
Collecting scikits.audiolab==0.11.0
Using cached scikits.audiolab-0.11.0.tar.gz
Complete output from command python setup.py egg_info:
SndfileInfo:
libraries sndfile not found in C:\Users\MXJ719\AppData\Local\Continuum\anaconda3\envs\wavenet\libs\libsndfile
libraries sndfile not found in C:\Users\MXJ719\AppData\Local\Continuum\anaconda3\envs\wavenet\libs\libsndfile\lib
Traceback (most recent call last):
File "scikits\audiolab\pysndfile\setup.py", line 20, in configuration
sf_config = sf_info.get_info(2)
File "C:\Users\MXJ719\AppData\Local\Continuum\anaconda3\envs\wavenet\lib\site-packages\numpy\distutils\system_info.py", line 578, in get_info
raise self.notfounderror(self.notfounderror.__doc__)
numpy.distutils.system_info.NotFoundError: Some third-party …Run Code Online (Sandbox Code Playgroud)