Advertisement
Guest User

Untitled

a guest
Dec 14th, 2019
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.69 KB | None | 0 0
  1. import csv
  2. import pandas as pd
  3.  
  4.  
  5. # Zapiszmy któryś plik do zmiennej data
  6. from sklearn.cluster import KMeans
  7.  
  8. data = [] # Tworzymy pustą listę
  9. with open("data/leukemia.tab.txt") as file: # Zapis, żeby otworzyć plik
  10.     reader = csv.reader(file, delimiter='\t') # Ustalenie obiektu to wczytywania z ustawieniem, że w pliku dane podzielione są tabulatorem
  11.     for row in reader: # Iteracja, czyli w pętli lecimy po kazej linijce pliku od góry do dołu
  12.        if len(row) > 2: # Jeżeli w linijce są mniej niż 2 dane to znaczyny, że jest to nagłowek, więc pomijamy
  13.            data.append(row) # Linijke dłuższa niż 2 dodajemy do naszej listy 'data'
  14. 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
  15.  
  16.  
  17. # Przekształcamy do typu DataFrame żeby lepiej sie operowało danymi.
  18. # 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.
  19. # Na przykład transponowanie.
  20. print("\nPrzed obroceniem:")
  21. data_frame = pd.DataFrame(data)
  22. print(data_frame.head())  # Zobaczmy kilka pierwszych (5) linijek
  23. print(data_frame.tail())  # Zobaczmy kilka ostatnich
  24.  
  25.  
  26. # Transponowanie macierzy (tak to sie chyba matematycznie nazywa)
  27. data_frame_transposed = data_frame.transpose()
  28. print("\nPo obroceniu:")
  29. print(data_frame_transposed.head())
  30. print(data_frame_transposed.tail())
  31.  
  32. # Zagregujmy dane za pomocą metody kmeans, robimy 5 klastrów
  33. kmeans = KMeans(n_clusters=5).fit(data_frame_transposed)
  34. centroids = kmeans.cluster_centers_
  35. print("\nCentra (",len(centroids),") \n", centroids)
  36.  
  37. # Dla każdego z klastrów  robimy liste
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement