from sklearn.cluster import Birch
import numpy as np
import matplotlib.pyplot as plt
np.random.seed(12)
p1 = np.random.randint(5,21,110)
p2 = np.random.randint(20,30,120)
p3 = np.random.randint(8,21,90)
data = np.array(np.concatenate([p1, p2, p3]))
x_range = range(len(data))
x = np.array(list(zip(x_range, data))).reshape(len(x_range), 2)
plt.scatter(x[:,0], x[:,1])
plt.show()
bclust=Birch(branching_factor=100, threshold=.5).fit(x)
print(bclust)
labels = bclust.predict(x)
plt.scatter(x[:,0], x[:,1], c=labels)
plt.show()
ZnJvbSBza2xlYXJuLmNsdXN0ZXIgaW1wb3J0IEJpcmNoCmltcG9ydCBudW1weSBhcyBucAppbXBvcnQgbWF0cGxvdGxpYi5weXBsb3QgYXMgcGx0CgpucC5yYW5kb20uc2VlZCgxMikKcDEgPSBucC5yYW5kb20ucmFuZGludCg1LDIxLDExMCkgCnAyID0gbnAucmFuZG9tLnJhbmRpbnQoMjAsMzAsMTIwKQpwMyA9IG5wLnJhbmRvbS5yYW5kaW50KDgsMjEsOTApCgpkYXRhID0gbnAuYXJyYXkobnAuY29uY2F0ZW5hdGUoW3AxLCBwMiwgcDNdKSkKeF9yYW5nZSA9IHJhbmdlKGxlbihkYXRhKSkKeCA9IG5wLmFycmF5KGxpc3QoemlwKHhfcmFuZ2UsIGRhdGEpKSkucmVzaGFwZShsZW4oeF9yYW5nZSksIDIpCgpwbHQuc2NhdHRlcih4WzosMF0sIHhbOiwxXSkKcGx0LnNob3coKQoKYmNsdXN0PUJpcmNoKGJyYW5jaGluZ19mYWN0b3I9MTAwLCB0aHJlc2hvbGQ9LjUpLmZpdCh4KQpwcmludChiY2x1c3QpCgpsYWJlbHMgPSBiY2x1c3QucHJlZGljdCh4KQoKcGx0LnNjYXR0ZXIoeFs6LDBdLCB4WzosMV0sIGM9bGFiZWxzKQpwbHQuc2hvdygp