小编Ril*_*ley的帖子

定期替换列表中的值

假设我在Python中有以下列表:

my_list = [10] * 95
Run Code Online (Sandbox Code Playgroud)

给定n,我想m在列表中替换任何其他元素,同时保留下一个n元素.

例如,如果n = 3m = 2,我希望我的列表看起来像:

[10, 10, 10, 0, 0, 10, 10, 10 ,0, 0, ..., 10, 10, 10 , 0, 0]
Run Code Online (Sandbox Code Playgroud)

如果它不能完全填补,因为与案件n = 4m = 2,那么它的确定,如果我的名单看起来是这样的:

[10, 10, 10, 10, 0, 0, ..., 10, 10, 10, 10, 0]
Run Code Online (Sandbox Code Playgroud)

我该如何尝试解决这个问题?

python replace list

22
推荐指数
5
解决办法
2117
查看次数

CVXPY 中的初始猜测/热启动:给出解决方案的提示

在这段代码中:

import cvxpy as cvx

# Examples: linear programming
# Create two scalar optimization variables.
x = cvx.Variable()
y = cvx.Variable()

# Create 4 constraints.
constraints = [x >= 0,
               y >= 0,
               x + y >= 1,
              2*x + y >= 1]

# Form objective.
obj = cvx.Minimize(x+y)

# Form and solve problem.
prob = cvx.Problem(obj, constraints)
prob.solve(warm_start= True)  # Returns the optimal value.
print ("status:", prob.status)
print ("optimal value", prob.value)
print ("optimal var", x.value, y.value)
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种方式来选择温暖的起始值自己(例如:X …

python optimization solver cvxpy

6
推荐指数
2
解决办法
2971
查看次数

程序中的数组

所以,首先我想说我是Python的新手,所以这可能是一个简单的问题.我正在练习我的编程技巧,并且正在尝试编写一个简单的程序.它是这样的:

def cal(alpha, k):
    sqrt = np.zeros(len(alpha))
    for i in range(len(alpha)):
        sqrt[i] = np.sqrt(alpha[i])*k
        return sqrt
Run Code Online (Sandbox Code Playgroud)

其中,一定alphak,应该给我一个数组sqrt[].例如,如果alpha = [1,4,9]k = 3,答案应该是[3,6,9].但是,当在Python中执行时,它给出了[3,0,0].

我的问题是:为什么?我知道如果我简单地说,我可以得到我想要的东西

 def cal(alpha, k):
     sqrt = np.zeros(len(alpha))
     sqrt= np.sqrt(alpha)*k
     return sqrt
Run Code Online (Sandbox Code Playgroud)

但我想知道我的推理错误在哪里.

谢谢!

python arrays for-loop numpy python-3.x

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

反向支持向量机:计算预测

我想知道,考虑到 svm 回归模型的回归系数,是否可以“手动”计算该模型所做的预测。更准确地说,假设:

svc = SVR(kernel='rbf', epsilon=0.3, gamma=0.7, C=64)
svc.fit(X_train, y_train)
Run Code Online (Sandbox Code Playgroud)

那么你可以通过使用非常容易地获得预测

y_pred = svc.predict(X_test)
Run Code Online (Sandbox Code Playgroud)

我想知道如何直接计算得到这个结果。从决策函数开始, RBF核的决策函数 其中K是 RBF 核函数,b是截距,α 是对偶系数。

因为我使用 RBF 内核,所以我是这样开始的:

def RBF(x,z,gamma,axis=None):
    return np.exp((-gamma*np.linalg.norm(x-z, axis=axis)**2))


for i in len(svc.support_):
    A[i] = RBF(X_train[i], X_test[0], 0.7)
Run Code Online (Sandbox Code Playgroud)

然后我计算了

np.sum(svc._dual_coef_*A)+svc.intercept_
Run Code Online (Sandbox Code Playgroud)

但是,此计算的结果与 的第一项不同y_pred。我怀疑我的推理并不完全正确和/或我的代码不应该是这样,所以如果这不是正确的提问板,我深表歉意。在过去的两个小时里我一直盯着这个问题,所以任何帮助将不胜感激!

更新

经过更多研究,我发现了以下帖子:Replication of scikit.svm.SRV.predict(X)Calculated Decision Function of SVM Manual。在第一篇文章中,他们讨论了回归,在第二篇文章中讨论了分类,但想法保持不变。在这两种情况下,操作员基本上都在问同样的事情,但是当我尝试实现他们的代码时,我总是在步骤中遇到错误

diff = sup_vecs - X_test
Run Code Online (Sandbox Code Playgroud)

形式的

ValueError: operands could not be broadcast together with shapes 

(number equal to amount of …
Run Code Online (Sandbox Code Playgroud)

python regression svm scikit-learn

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