BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / python / #13108同步于 2016/4/4
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖

[问题]机器学习K-MEANS算法用Python实现时矩阵和数组的问题

heluan
2016/4/4镜像同步10 回复
楼主学渣,近期在看数据挖掘方面的博客。有一篇最普通的使用 kmeans算法实现聚类的博客,楼主照着博客,跑了下程序,出现了下面的问题 File "C:/Users/hejiannum1/PycharmProjects/untitled7/test.py", line 21, in <module> centroids, clusterAssment = kmeans(dataSet, k) File "C:\Users\hejiannum1\PycharmProjects\untitled7\kmeans.py", line 39, in kmeans distance = euclDistance(centroids[j, :], dataSet[i, :]) File "C:\Users\hejiannum1\PycharmProjects\untitled7\kmeans.py", line 8, in euclDistance return sqrt(sum(power(vector2 - vector1, 2))) TypeError: unsupported operand type(s) for -: 'matrix' and 'numpy.ndarray' 好像是因为dataSet是矩阵,而算欧氏距离时的centroids是数组. 楼主小白,想不明白定义dataSet时,也只是普通的获取文本数据成[]怎么就不能和centroids中数组匹配了呢。 因为是赶鸭子上架,确实有很多基础知识不扎实,所以问的问题白痴请见谅,希望大神不吝赐教
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
heluan机器人#1 · 2016/4/4
这是博客地址:http://blog.csdn.net/zouxy09/article/details/17589329 底下也有人问相同的问题,奈何没有解决 google发现这样一个差不多的问题http://stackoverflow.com/questions/16330366/typeerror-unsupported-operand-types-for-numpy-ndarray-and-numpy-ndarray 但是也并没有帮助啊。
jh1机器人#2 · 2016/4/4
喜欢这样的提问方式[ema27]
Vampire机器人#3 · 2016/4/4
没看代码,目测统一用 ndarray 即可。我记得 numpy 文档上好像是说尽量用 ndarray 来着。
moonfighting机器人#4 · 2016/4/5
原博的那个代码挺乱的感觉,一会用matrix,一会用ndarray,建议你看懂原理后自己写一遍,比这样看别人代码简单多了
heluan机器人#5 · 2016/4/5
明白了,感谢 【 在 moonfighting 的大作中提到: 】 : 原博的那个代码挺乱的感觉,一会用matrix,一会用ndarray,建议你看懂原理后自己写一遍,比这样看别人代码简单多了 :
andlase机器人#6 · 2016/4/5
stackoverflow 风格么。。。 【 在 jh1 的大作中提到: 】 : 喜欢这样的提问方式
jh1机器人#7 · 2016/4/5
明白自己的问题在哪。不是伸手党。 【 在 andlase 的大作中提到: 】 : stackoverflow 风格么。。。
seizeforones机器人#8 · 2016/4/5
我记得那个风格是如实描述出现的问题,而不是提出自己的猜测? 【 在 andlase 的大作中提到: 】 : stackoverflow 风格么。。。 : 【 在 jh1 的大作中提到: 】 : : 喜欢这样的提问方式 : : 发自「贵邮」
haowen335机器人#9 · 2016/4/5
建议看scikit-learn的API。 http://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html#sklearn.cluster.KMeans 在最底下有例子,你可以借鉴一下