<jupyter_start><jupyter_text>K-Means Clustering  Langkah Pertama : Pahami dataset Import keperluan library untuk mengolah dan menampilkan dataset<jupyter_code>import pandas as pd<jupyter_output><empty_output><jupyter_text>Meload data dan mengubah data nya ke numpy array<jupyter_code>dataTrain = pd.read_csv('TrainingSet.txt', delimiter='\t').as_matrix()
dataTrain<jupyter_output><empty_output><jupyter_text>Melakukan visualisasi data dengan pyplot<jupyter_code>import matplotlib.pyplot as plt
%matplotlib inline
plt.scatter(dataTrain[:,0],dataTrain[:,1]) # dataTrain[:,0] mengambil kolom X, sedangkan [:,1] mengambil kolom Y
plt.title('Scatter Plot')
plt.xlabel('x')
plt.ylabel('y')
plt.show()<jupyter_output><empty_output><jupyter_text>Hasil datasetnya adalah seperti di tabel scatter plot diatas, hmm menurut penglihatan amatir saya, sepertinya bisa menjadi 7 cluster Menghitung Euclidean<jupyter_code>def euclidean(a,b):
    return np.linalg.norm(a-b)<jupyter_output><empty_output><jupyter_text>Menggunakan Library Sci-Kit Learn untuk membantu menentukan jumlah cluster<jupyter_code>from sklearn.cluster import KMeans
sse = []
for i in range(1,10):
    kmeans = KMeans(n_clusters = i, init ='k-means++', max_iter = 300, n_init = 10, random_state =0)
    kmeans.fit(dataTrain)
    sse.append(kmeans.inertia_)
plt.plot(range(1,10), sse)
plt.title('Elbow Method')
plt.xlabel('Jumlah Cluster')
plt.ylabel('SSE')
plt.show
def getCentroid(data, k):
    index = np.random.randint(0,data.shape[0],k) # memilih index random, sebanyak 2 data
    return data[index] # memotong array data berdasarkan index yang terpilih

print(pilihCentroid(dataTrain, 3))
import numpy as np
dataTrain[np.random.randint(0,dataTrain.shape[0],2)]

# b = np.random.randint(0,dataTrain.shape[0],2) # memilih index random, sebanyak 2 data
b = np.random.randint(0,100,4)

b<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.1190603310197544, 'fraction_numerical': 0.01761879337960491, 'mean_word_length': 7.147826086956521, 'pattern_counts': {'":': 0, '<': 21, '<?xml version=': 0, '>': 21, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '5', 'dir': 'jupyter-structured-clean-dedup', 'id': '424703', 'license': 'MIT', 'n_tokens_mistral': 779, 'n_tokens_neox': 726, 'n_words': 150, 'path': 'KMeansClustering.ipynb', 'repo_name': 'kamalhm/k-means-clustering', 'size': '1873'}