Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
错误:K均值聚类算法数据图在Python中不可见_Python_Python 3.x_Machine Learning_K Means - Fatal编程技术网

错误:K均值聚类算法数据图在Python中不可见

错误:K均值聚类算法数据图在Python中不可见,python,python-3.x,machine-learning,k-means,Python,Python 3.x,Machine Learning,K Means,嗨,我想实现K-Means聚类算法 为此,我从sample.csv文件中获取数据,并对其应用K-Means聚类。这是我的源代码 ##K-Means.py # clustering dataset import pandas from sklearn.cluster import KMeans from sklearn import metrics import numpy as np import matplotlib.pyplot as plt variables = pandas.rea

嗨,我想实现K-Means聚类算法

为此,我从sample.csv文件中获取数据,并对其应用K-Means聚类。这是我的源代码

##K-Means.py

# clustering dataset
import pandas

from sklearn.cluster import KMeans
from sklearn import metrics
import numpy as np
import matplotlib.pyplot as plt

variables = pandas.read_csv("/Users/srikanth/Desktop/sample1.csv")
print(variables)
x1 = variables[['X']]
x2 = variables[['Y']]
print(x1)
print(x2)

plt.plot()
plt.xlim([0, 10])
plt.ylim([0, 10])
plt.title('Dataset')
plt.xlabel('X - Values')
plt.ylabel('Y - Values')
plt.scatter(x1, x2)
plt.show()

# create new plot and data
plt.plot()
X = np.array(list(zip(x1, x2))).reshape(len(x1), 2)
colors = ['b', 'g', 'r']
markers = ['o', 'v', 's']

# KMeans algorithm
K = 3
kmeans_model = KMeans(n_clusters=K).fit(X)

plt.plot()
for i, l in enumerate(kmeans_model.labels_):
    plt.plot(x1[i], x2[i], color=colors[l], marker=markers[l],ls='None')
    plt.xlim([0, 10])
    plt.ylim([0, 10])
    plt.show()
在终端中运行上述代码后,输出如下:

上图没有显示任何聚集数据图,因此我希望直观地看到我的聚集数据图。我怎样才能解决这个问题。 我对这个地区不熟悉。 多谢各位

它为10个点产生的散射为:


对于使用kmeans集群模型的代码,您正在为模型中的每个标签进行打印,该模型将生成10个打印。只要改变限制就行了。

如果你说的是第一次分散,我想你必须改变限制。因为数据位于([150190])和([4090])之间的位置最多只有10个。顺便说一句,你在循环中有一个plot,你是plot.show for every point???。顺便说一句,你不是在实现K-means,你只是想使用一个现有的实现(scikit learn在这里)…@desertnaut抱歉,谢谢你指出这一点。我是这个地区的新手。非常欢迎你-不用担心,继续…非常感谢你的工作。但我改变了极限值,如plt.xlim([100150])plt.ylim([40,60]),再次运行这些值后,它没有显示任何图,即使值46,52,55,59,60在Y中可用。我犯了什么错误???@我们不能为图显示任何值,因为x_轴上没有值(对于所选极限)因此它不能在图上画出任何点。谢谢你,也请建议我学习机器学习的任何参考链接。我是这个领域的新手。非常感谢。
from sklearn.cluster import KMeans
from sklearn import metrics
import numpy as np
import matplotlib.pyplot as plt

variables = pandas.read_csv("/Users/srikanth/Desktop/sample1.csv")
print(variables)
x1 = variables[['X']]
x2 = variables[['Y']]
plt.plot()
plt.xlim([150, 190])
plt.ylim([40, 90])
plt.title('Dataset')
plt.xlabel('X - Values')
plt.ylabel('Y - Values')
plt.scatter(x1, x2)
plt.show()