执行此代码时,出现以下错误:
AttributeError: 'function' object has no attribute 'labels_'
我知道此消息是由以下方法触发的: 样本最少的集群
通过以下方式:
minSamples=长度(模型.标签_)在
有什么不对劲的提示吗?在
提前致谢。在
乔迪
import pandas as pd
from datetime import timedelta
import matplotlib.pyplot as plt
import matplotlib
from sklearn.cluster import KMeans
matplotlib.style.use('ggplot')
def model(self, num):
return
def showandtell(title=None):
if title != None: plt.savefig(title + ".png", bbox_inches='tight', dpi=300)
plt.show()
exit()
def clusterInfo(model):
print "Cluster Analysis Inertia: ", model.inertia_
print '------------------------------------------'
for i in range(len(model.cluster_centers_)):
print "\n Cluster ", i
print " Centroid ", model.cluster_centers_[i]
print " #Samples ", (model.labels_==i).sum() # NumPy Power
def clusterWithFewestSamples(model):
minSamples = len(model.labels_)
minCluster = 0
for i in range(len(model.cluster_centers_)):
if minSamples > (model.labels_==i).sum():
minCluster = i
minSamples = (model.labels_==i).sum()
print "\n Cluster With Fewest Samples: ", minCluster
return (model.labels_==minCluster)
def doKMeans(data, clusters=0):
df_user1 = data.loc[:, ['TowerLon', 'TowerLat']]
kmeans = KMeans(n_clusters=clusters)
kmeans.fit(df_user1)
labels = kmeans.predict(df_user1)
centroids = kmeans.cluster_centers_
ax.scatter(centroids[:,0], centroids[:,1], marker='x', c='red', alpha=0.5, linewidths=3, s=169)
print centroids
return model
df = pd.read_csv('datasets/CDR.csv')
df.CallDate = pd.to_datetime(df.CallDate, errors='coerce')
df.CallTime = pd.to_timedelta(df.CallTime, errors='coerce')
PhoneList = df["In"].unique()
print "\n\nExamining person: ", 0
user1 = df[df.In == PhoneList[0]]
user1 = user1[(user1.DOW != 'Sat') & (user1.DOW != 'Sun')]
user1 = user1[(user1.CallTime > '09:00:00') | (user1.CallTime < '17:00:00')]
fig = plt.figure()
ax = fig.add_subplot(111)
ax.scatter(user1.TowerLon,user1.TowerLat, c='g', marker='o', alpha=0.2)
ax.set_title('Weekday Calls (>7:306am or <17p)')
model = doKMeans(user1, 2)
midWayClusterIndices = clusterWithFewestSamples(model)
midWaySamples = user1[midWayClusterIndices]
print " Its Waypoint Time: ", midWaySamples.CallTime.mean()
ax.scatter(model.cluster_centers_[:,1], model.cluster_centers_[:,0], s=169, c='r', marker='x', alpha=0.8, linewidths=2)
showandtell('Weekday Calls Centroids')
model
来自哪里?在在
^{pr2}$doKMeans()
中,model
没有分配任何内容,我很惊讶它没有抛出NameError异常。也许应该是的一个
sklearn.cluster.KMeans
对象确实有一个labels_
属性。在您期望}的函数
model
有一个labels_
属性,但是您已经将model
定义为返回{当调用
doKMeans
时,它返回名为model
的函数因此,
model = doKMeans(user1, 2)
语句什么也不做:函数
model
或其返回值None
都没有labels_
属性。在相关问题 更多 >
编程相关推荐