Code: Alles auswählen
np.random.seed(11111)
max_k_to_try = 20
def robust_kmeans(data, k, howmany=20):
score = 100000000
for i in range(howmany):
point_classification, centroids = konvergenz(data, k, noisy=False)
total_inner_variance = np.nansum([np.var(data[point_classification == pointclass])
for pointclass in range(k)])
group_variance = np.var(centroids)
new_score = group_variance / total_inner_variance
if(new_score < score):
final_classification, final_centroids = point_classification, centroids
score = new_score
return final_classification, final_centroids, score
elbow_values = [robust_kmeans(feature, k)[2] for k in range(2, max_k_to_try+1)]
fig, ax = plt.subplots()
fig.suptitle("elbow plot")
ax.plot(np.arange(2, max_k_to_try+1), elbow_values)
plt.show()
ich habe im internet nachgeschaut, dort steht dass man global deklarieren muss. Ich habe dies auch versucht aber klappt irgendwie dennoch nicht ganz