Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import csv
- import pandas as pd
- from sklearn.cluster import KMeans
- # Zapiszmy któryś plik do zmiennej data
- data = [] # Tworzymy pustą listę
- with open("data/leukemia.tab.txt") as file: # Zapis, żeby otworzyć plik
- reader = csv.reader(file, delimiter='\t') # Ustalenie obiektu to wczytywania z ustawieniem, że w pliku dane podzielione są tabulatorem
- for row in reader: # Iteracja, czyli w pętli lecimy po kazej linijce pliku od góry do dołu
- if len(row) > 2: # Jeżeli w linijce są mniej niż 2 dane to znaczyny, że jest to nagłowek, więc pomijamy
- data.append(row) # Linijke dłuższa niż 2 dodajemy do naszej listy 'data'
- print("Linia 1 po wczytaniu:", "\n", data[0], '\n') # Zobaczmy naszą 1 linijke czy dobrze sie wczytało i czy czasem nie jest nagłowkiem
- # Przekształcamy do typu DataFrame żeby lepiej sie operowało danymi.
- # Lista nie była zła, ale jak zrobimy z tego DataFrame to się łatwiej wykonuje obliczenia na tych danych. Mamy więcej funkcji wbudowanych.
- # Na przykład transponowanie.
- print("\nPrzed obroceniem:")
- data_frame = pd.DataFrame(data)
- print(data_frame.head()) # Zobaczmy kilka pierwszych (5) linijek
- print(data_frame.tail()) # Zobaczmy kilka ostatnich
- # Transponowanie macierzy (tak to sie chyba matematycznie nazywa)
- data_frame_transposed = data_frame.transpose()
- print("\nPo obroceniu:")
- print(data_frame_transposed.head())
- print(data_frame_transposed.tail())
- # Zagregujmy dane za pomocą metody kmeans, robimy 5 klastrów
- kmeans = KMeans(n_clusters=5).fit(data_frame_transposed)
- centroids = kmeans.cluster_centers_
- print("\nCentra (",len(centroids),") \n", centroids)
- # Dla każdego z klastrów robimy liste
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement