- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
下面是一些代码:
df_tr_std = stats.zscore(df_tr[clmns])
km = KMeans(n_clusters=3, init='k-means++',n_init=10,max_iter=300,tol=1e-04,random_state=0)
y_km = km.fit_predict(df_tr_std)
我尝试引用 inertial_,但这是完全失真的。以下代码用于计算各个距离:
distance = euclidean_distances(km.cluster_centers_, df_tr_std)
但它将距离分成 3 个数组(或者我创建的集群数量)。有没有办法在不按标签/集群分离的情况下做到这一点?
我想用一列距离扩展我的原始数据集,以便我可以识别最大距离。我也想要最近的距离,但我能够使用以下代码找到它:
closest, _ = pairwise_distances_argmin_min(km.cluster_centers_, df_tr_std)
最佳答案
您可以做的是使用聚类质心和标签对聚类质心进行索引,以获取每个示例表示的内容。然后,您可以分别计算每个示例的失真。回想一下,K-Means 聚类结果的失真或惯性只是示例与其对应的代表性质心之间的平方差之和。要计算单个失真值,您只需找到每个示例的代表性质心,然后找到分量的平方差之和。总失真是所有这些值的总和。
因此:
cluster_centers = km.cluster_centers_
centroids = cluster_centers[y_km]
distortion = ((df_tr_std - centroids)**2.0).sum(axis=1)
第一行代码访问您拟合的 K-means 模型的聚类中心。第二行代码使用从拟合结果输出的标签获取每个示例的代表性质心。在最后一行中,您可以通过减去输入的每一行或示例及其代表质心分量来计算失真,对每个元素进行平方,然后对每一行求和。
在不需要临时变量的情况下在一行中执行此操作可能很方便:
distortion = ((df_tr_std - km.cluster_centers_[y_km])**2.0).sum(axis=1)
这将为您提供每个示例的计算失真。具体来说,distortion
是一个 N,
NumPy 数组,其中 N
是数据集中的示例数。每个元素对应于相应示例对整体失真的贡献。
要验证,您可以检查 km.inertia_
总失真与最后一行计算的失真数组的总和相匹配,因此请检查 distortion.sum()
和 km.inertia_
。
作为一个可重现的例子:
In [27]: import numpy as np
In [28]: from sklearn.cluster import KMeans
In [29]: df_tr_std = np.random.rand(1000,3)
In [30]: km = KMeans(n_clusters=3, init='k-means++',n_init=10,max_iter=300,tol=
...: 1e-04,random_state=0)
In [31]: y_km = km.fit_predict(df_tr_std)
In [32]: distortion = ((df_tr_std - km.cluster_centers_[y_km])**2.0).sum(axis=1)
In [33]: km.inertia_
Out[33]: 147.01626670004867
In [34]: distortion.sum()
Out[34]: 147.01626670004865
请注意,值的尾部存在一些细微差异,这是由于数值精度所致,但您可以向自己保证,我们已经分别计算了每个示例的失真。
获得扭曲数组后,您可以在数据框中添加一个额外的列来表示这些扭曲,然后您可以根据需要找到哪一行给您带来了最大或最小的扭曲。
关于python - 在使用 kmeans 创建集群时,有没有办法输出每行的失真?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49058507/
我正在尝试更改通过AVAudioPlayer播放的声音文件的速率。它可以工作,但是有很多伪像,尤其是当我放慢速度时。我很高兴速率变化保持相同的音调,但是似乎有麻烦,尤其是持续的音符。 直到我用均衡,压
我正在开发一个需要同步声音的安卓音频应用。 我正在尝试合并两个声音缓冲器,但在大幅度时出现失真。这就是我正在做的: for(int i=0;i>8); } 缓冲区使用:
我正在尝试使用 MediaRecorder 从相机录制视频。这是一个代码 fragment 剪断.. mr.setAudioSource( MediaRecorder.AudioSource.MI
我想找点乐子看看 Canvas 。画一个盒子似乎很容易,所以我几乎从 mozilla 开发者网站上复制了一个例子。你可以在这里看到它:http://jsfiddle.net/Wolfy87/DZBwp
我有一个程序,可以简单地绘制一个立方体。当应用旋转缩放等变换时,程序可以工作。当我尝试应用任何透视矩阵(例如透视、平截头体或正交)时,立方体会以未定义的方式变得非常扭曲。我感到困惑的是为什么该程序在使
在 CSS 和 HTML 中,向下滚动时如何避免背景图像失真? 我的代码大纲如下:HTML * { margin : 0; background-image : url("im
我在 Qt 中旋转图像时遇到了一些问题。每次我用 QPainter 旋转我的图像它变得越来越扭曲。这是初始图像: 经过一些迭代后它变成: 这是我的代码: void Ship::Move(int x,
我正在尝试将 UILabel 旋转 45 度。我将 transform 属性设置为 CGAffineTransformMakeRotation(M_PI * 0.25) 但是当我这样做时,UILabe
当我添加一堆 (20-40) 个样本同时播放和重叠时,有时它会开始失真,然后开始出现一些波动、振荡和咔哒声。当样本正在播放时应用程序崩溃时会发出类似的声音 - 听起来像是突然、嘎吱作响的停止。 请注意
我想使用 amCharts Javascript 库显示我的用户排名。用户排名是这样的(很好,没问题): 问题是如果我有两个相同的配置文件名称(例如,如果我有两个 Sara 名称作为配置文件名称或什至
在 TornadoFX 中使用 SVG 时遇到奇怪的问题。我有一些 SVG 字符串存储在一个枚举中,我在程序中用作背景图像。当我在在线查看器中查看完全相同的 SVG 路径时,没有失真并且显示正确: 但
我使用录音机(Google Play 上的 AudioRec)。 我可以选择adjust the gain with [-20dB, + 20dB]范围。 它在我的手机上运行得很好,但用户使用连接到其
Logo 、搜索栏、购物车、登录和注册未在同一行对齐。 当我尝试查看移动 View 时,出现失真 搜索栏和其他东西搞砸了 在移动 View 中,点击菜单折叠按钮没有任何反应。 这是我的代码:
我仍然是 OpenGL 的初学者。我正在尝试使用着色器在 1280 x 720 的屏幕上绘制一个完美的正方形。 我使用的是 OpenGL 核心配置文件 3.3 版。当我试图在 1280 x 720 中
我的应用程序生成的电子邮件在浏览器(示例 chrome)中打开时可以完美打开。但是当在 Microsoft Outlook 中打开同一封电子邮件时,它会严重变形(例如文本不可见,按钮文本被换行)。任何
我对使用 OpenGL ES 2.0 还很陌生。我也在使用 iPhone 和 GLM 数学库。正如我所提到的,我经常使用本教程:http://tomdalling.com/blog/modern-op
我最初是在考虑 CoreImage 的情况下解决这个问题的(因为我还需要进行面部识别),但我意识到,不幸的是,CI 失真滤镜尚未包含在 iPhone 中。 我试图深入研究 GLImageProcess
我已经使用 twitter-bootstrap gem 来制作商店应用程序。在我添加 activeadmin gem 之前它工作正常。 admin主页的 View 有一行: 店铺名称 和 "trans
我拍了一张照片,然后用这张照片初始化了一个 UIImageView 对象。唯一的问题是,当我拍照时,照片是使用完整的 iPhone 屏幕(纵向)拍摄的。 使用这张照片初始化的 UIImageView
我正在使用 AVAssetWriter 将一系列图像编码为电影文件,遵循 Zoul 在这里的回答:How do I export UIImage array as a movie? . 简而言之我的流
我是一名优秀的程序员,十分优秀!