Advertisement
Guest User

Untitled

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