小编xdz*_*ze2的帖子

使用 Python 在优化曲线上找到“肘点”

我有一个点列表,它们是 kmeans 算法的惯性值。
为了确定最佳集群数量,我需要找到这条曲线开始变平的点。

数据示例

以下是我的值列表的创建和填充方式:

sum_squared_dist = []
K = range(1,50)
for k in K:
    km = KMeans(n_clusters=k, random_state=0)
    km = km.fit(normalized_modeling_data)
    sum_squared_dist.append(km.inertia_)

print(sum_squared_dist)
Run Code Online (Sandbox Code Playgroud)

我怎样才能找到一个点,这条曲线的节距增加(曲线正在下降,所以一阶导数为负)?

我的方法

derivates = []
for i in range(len(sum_squared_dist)):
    derivates.append(sum_squared_dist[i] - sum_squared_dist[i-1])
Run Code Online (Sandbox Code Playgroud)

我想使用肘部方法找到任何给定数据的最佳聚类数。有人可以帮助我如何找到惯性值列表开始变平的点吗?

编辑数据点

[7342.1301373073857, 6881.7109460930769, 6531.1657905495022,  
6356.2255554679778, 6209.8382535595829, 6094.9052166741121, 
5980.0191582610196, 5880.1869867848218, 5779.8957906367368, 
5691.1879324562778, 5617.5153566271356, 5532.2613232619951, 
5467.352265375117, 5395.4493783888756, 5345.3459908298091, 
5290.6769823693812, 5243.5271656371888, 5207.2501206569532, 
5164.9617535255456]
Run Code Online (Sandbox Code Playgroud)

图形: 图形

python numpy scikit-learn data-science

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

如何将魔杖图像对象转换为 numpy 数组(没有 OpenCV)?

我正在使用Wand将 pdf 文件转换为图像。然后,我使用 ndimage 进行进一步的图像处理。

我想直接将 Wand 图像转换为 ndarray ......我在这里看到了答案,但它使用 OpenCV。这可能不使用 OpenCV 吗?

目前我保存了一个临时文件,它用 scipy.misc.imread() 重新打开

python pdf numpy wand ndimage

7
推荐指数
1
解决办法
3620
查看次数

从 RGB 颜色列表创建调色板图像

我使用颜色窃贼从图像中提取调色板。

如何创建一个rgb值的图像作为调色板?

from colorthief import ColorThief
color_thief = ColorThief('C:\Users\username\Desktop\index.jpg')
# get the dominant color
dominant_color = color_thief.get_color(quality=1)
print dominant_color
# build a color palette
palette = color_thief.get_palette(color_count=2)
print palette
Run Code Online (Sandbox Code Playgroud)

输出:

(82, 129, 169)
[(82, 129, 169), (218, 223, 224), (147, 172, 193), (168, 197, 215), (117, 170, 212)]
Run Code Online (Sandbox Code Playgroud)

预期输出类似于http://www.color-hex.com/color-palette/895,即一系列彩色矩形

python numpy image

3
推荐指数
1
解决办法
3006
查看次数

以编程方式在Numpy中沿其所有轴裁剪数组

我想(均匀地)减少每个方向上的numpy数组(矩阵)的尺寸.以下代码有效.

array = np.array([3, 2323, 212, 2321, 54])
padding = 1
array[padding:-padding]
Run Code Online (Sandbox Code Playgroud)

输出:

[2323, 12, 2321]
Run Code Online (Sandbox Code Playgroud)

但我希望以另一种方式做到这一点.我的数组将是50维的,我想将最后一行应用于数组的每个维度,但我不想编写太多代码.

也许是这样的

  array[padding: -padding for i in range(50)]
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

python numpy

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

标签 统计

numpy ×4

python ×4

data-science ×1

image ×1

ndimage ×1

pdf ×1

scikit-learn ×1

wand ×1