小编use*_*865的帖子

无论顺序如何,都生成重复列表

我想生成将列表中的索引与"插槽"相关联的组合.例如,(0, 0, 1)表示0和1属于同一个插槽,而2属于另一个插槽.(0, 1, 1, 1)表示1,2,3属于同一个插槽,0表示自身.在此示例中,0和1只是识别这些插槽的方法,但不包含我的使用信息.

因此,(0, 0, 0)(1, 1, 1)我的目的完全相同,(0, 0, 1)相当于(1, 1, 0).

经典的笛卡尔积产生了许多我想要摆脱的重复.

这是我获得的itertools.product:

>>> LEN, SIZE = (3,1)
>>> list(itertools.product(range(SIZE+1), repeat=LEN))
>>>
[(0, 0, 0),
(0, 0, 1),
(0, 1, 0),
(0, 1, 1),
(1, 0, 0),
(1, 0, 1),
(1, 1, 0),
(1, 1, 1)]
Run Code Online (Sandbox Code Playgroud)

这就是我想得到的:

>>> [(0, 0, 0),
(0, 0, 1),
(0, 1, 0),
(0, 1, 1)]
Run Code Online (Sandbox Code Playgroud)

使用小型列表很容易,但我不太明白如何使用更大的集合来完成此操作.你有什么建议吗?

如果不清楚,请告诉我,以便我澄清我的问题.谢谢! …

python algorithm permutation combinatorics

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

使用scikit-learn线性SVM提取决策边界

我有一个非常简单的1D分类问题:值列表[0,0.5,2]及其关联的类[0,1,2].我想获得这些类之间的分类界限.

调整虹膜示例(用于可视化目的),摆脱非线性模型:

X = np.array([[x, 1] for x in [0, 0.5, 2]]) 
Y = np.array([1, 0, 2])

C = 1.0  # SVM regularization parameter
svc = svm.SVC(kernel='linear', C=C).fit(X, Y)
lin_svc = svm.LinearSVC(C=C).fit(X, Y)
Run Code Online (Sandbox Code Playgroud)

给出以下结果: 在此输入图像描述

LinearSVC正在返回垃圾(为什么?),但带有线性内核的SVC工作正常.所以我想得到边界值,你可以用图形猜测:~0.25和~1.25.

这就是我失去的地方:svc.coef_回归

array([[ 0.5       ,  0.        ],
       [-1.33333333,  0.        ],
       [-1.        ,  0.        ]])
Run Code Online (Sandbox Code Playgroud)

svc.intercept_回归array([-0.125 , 1.66666667, 1. ]).这不明确.

我一定是在傻傻丢失,如何获得这些价值观?它们似乎很容易计算,迭代x轴找到边界会很荒谬......

python classification svm scikit-learn

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