小编use*_*556的帖子

sklearn 库中 .score() 和 .predict 之间的区别?

我使用 sklearn 库和以下代码实例化了一个 SVC 对象:

clf = svm.SVC(kernel='linear', C=1, cache_size=1000, max_iter = -1, verbose = True)

然后我使用以下方法拟合数据:

model = clf.fit(X_train, y_train)

其中 X_train 是 (301,60) 并且 y_train 是 (301,) ndarray(y_train 由类标签“1”、“2”和“3”组成)。

现在,在我偶然发现 .score() 方法之前,为了确定我的模型在训练集上的准确性,我使用了以下内容:

prediction = np.divide((y_train == model.predict(X_train)).sum(), y_train.size, dtype = float)

这给出了大约 62% 的结果。

但是,当使用 model.score(X_train, y_train) 方法时,我得到了大约 83% 的结果。

因此,我想知道是否有人可以向我解释为什么会这样,因为据我所知,他们应该返回相同的结果?

附录:

y_true 的前 10 个值是:

  • 2, 3, 1, 3, 2, 3, 2, 2, 3, 1, ...

而对于 y_pred(使用 model.predict(X_train) 时),它们是:

  • 2, 3, 3, 2, 2, 3, 2, …

python machine-learning svm scikit-learn

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

Debian/Raspberry Pi上非标准波特率的C代码

我正在使用只能以非标准波特率625000运行的硬件设备.

我需要通过USB端口连接到该设备并从中读取和写入数据.因此,我一直在尝试开发一个小C程序,这将允许我这样做.但是,这段代码需要在Linux环境(Debian/Raspian)中工作,不幸的是我的Linux技能只是基本的.

因此,我希望有人可以用最简单的术语向我解释(代码示例会很棒!)我如何在Linux上设置625000的非标准波特率,连接到我的硬件设备(ttyUSB0),然后写一个比特流到设备(0x02 0x01)并从中读取它返回的7个字节.

我已经看过以下Stack Overflow问题了:

和别的...

但是,我的Linux知识漏洞对我来说太大了,无法建立必要的连接.我该怎么做?

c linux baud-rate

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

手动计算SVM的决策函数

我正在尝试使用 python 库 SKLearn 手动计算 SVC 分类器的决策函数(而不是使用内置方法)。

我已经尝试了几种方法,但是,当我缩放我的数据时,我只能让手动计算匹配。

z 是一个测试数据(已缩放),我认为其他变量不言自明(此外,如果代码中不明显,我正在使用 rbf 内核)。

以下是我尝试过的方法:

1 循环方法:

dec_func = 0
for j in range(np.shape(sup_vecs)[0]):

    norm2 = np.linalg.norm(sup_vecs[j, :] - z)**2 
    dec_func = dec_func + dual_coefs[0, j] * np.exp(-gamma*norm2)

dec_func += intercept
Run Code Online (Sandbox Code Playgroud)

2 矢量化方法

diff = sup_vecs - z
norm2 = np.sum(np.sqrt(diff*diff), 1)**2
dec_func = dual_coefs.dot(np.exp(-gamma_params*norm2)) + intercept
Run Code Online (Sandbox Code Playgroud)

但是,这些都不会返回与decision_function. 我认为这可能与重新调整我的价值观有关,或者更有可能是我一直在寻找的一些愚蠢的事情!

任何帮助,将不胜感激。

python svm libsvm svc scikit-learn

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

如果列表中包含来自"黑名单"的子字符串,则从列表中删除项目

在python中,我想从列表中删除任何包含在所谓的"黑名单"中找到的子字符串的字符串.

例如,假设列表A如下:

A = [ 'cat', 'doXXXg', 'monkey', 'hoBBBrse', 'fish', 'snake']
Run Code Online (Sandbox Code Playgroud)

列表B是:

B = ['XXX', 'BBB']
Run Code Online (Sandbox Code Playgroud)

我怎么能得到列表C:

C = [ 'cat', 'monkey', 'fish', 'snake']
Run Code Online (Sandbox Code Playgroud)

我已经玩过各种正则表达式和列表推导的组合,但我似乎无法让它工作.

python regex string list-comprehension

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