我想生成将列表中的索引与"插槽"相关联的组合.例如,(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)
使用小型列表很容易,但我不太明白如何使用更大的集合来完成此操作.你有什么建议吗?
如果不清楚,请告诉我,以便我澄清我的问题.谢谢! …
我有一个非常简单的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轴找到边界会很荒谬......