[PYTHON] Clustering repräsentativer Schulen im Sommer 2016 mit Scikit-Learn

Einführung

Ich habe versucht, während des Studiums "Scikit-Learn" zu berühren, weil es Sommerferien waren. Es ist wie ein kostenloses Studium in den Sommerferien. Bitte verzeihen Sie es, obwohl es ein Anfängerinhalt ist.

Ich wollte wirklich so etwas wie maschinelles Lernen machen, aber ich fing an, weil ich es konnte, weil mir Wissen und Daten fehlten. Da das Baseball-Koshien-Turnier der High School im Sommer (persönlich) gerade erst aufgeregt wird, habe ich beschlossen, die repräsentativen Schulen anhand der Daten des lokalen Turniers zu gruppieren.

Datenaufbereitung

Es scheint, dass wir verschiedene Dinge analysieren können, indem wir Daten wie einzelne Ergebnisse sammeln, aber zuerst haben wir uns entschieden, grundlegende Daten wie die Trefferquote des Teams und die Verteidigungsrate zu verwenden.

Trefferergebnisse

Erstellen Sie die Originaldaten unter Bezugnahme auf diese Site. Die Trefferquote, der Heimbasis-Treffer, der Opfertreffer und die Anzahl der gestohlenen Basen des lokalen Turniers jeder repräsentativen Schule werden zusammengefasst. Die Anzahl der Heimbasis-Hits ist an nur einer Schule hervorragend. Übrigens, wenn Sie genau hinschauen, sind die repräsentativen Schulen in der Reihenfolge des Präfekturcodes angeordnet.

https://github.com/radiocat/study-sklearn/blob/master/hs-bb/batting-2016.csv

Pitcher Leistung

[Diese Site](http://koshien.site/wp/2016/08/05/%E9%AB%98%E6%A0%A1%E9%87%8E%E7%90%83%E5%A4% 8F% E3% 81% AE% E7% 94% B2% E5% AD% 90% E5% 9C% 92% E5% 87% BA% E5% A0% B4% E6% A0% A1% E6% 8A% 95% Erstellen Sie die Originaldaten unter Bezugnahme auf E6% 89% 8B% E6% 88% 90% E7% B8% BE /). Die Hauptkrüge, Wurfzeiten, Läufe und Verteidigungsraten bei den lokalen Wettbewerben jeder repräsentativen Schule werden zusammengefasst. Wenn eine Person nicht mehr als 60% der Fälle wirft, werden anscheinend zwei oder drei Krüge für die Berechnung verwendet. Der Hauptkampfkrug zählte die Anzahl der Personen und fügte sie einem anderen Gegenstand hinzu.

https://github.com/radiocat/study-sklearn/blob/master/hs-bb/pitching-2016.csv

Clustering

Die Anzahl der Cluster ist vorerst auf "5" eingestellt. Es gibt keine bestimmte Grundlage. Der Algorithmus verwendet "k-means". Ich habe nicht das Wissen, einen anderen zu wählen, anstatt dass dies gut ist ...

Trefferergebnisse

#coding:utf-8
import pandas as pd
import numpy as np
from sklearn.cluster import KMeans

dataframe = pd.read_csv('batting-2016.csv')

array = np.array([dataframe['Anzahl von Spielen'].tolist(),
    dataframe['Schlagdurchschnitt'].tolist(),
    dataframe['Heimatbasis'].tolist(),
    dataframe['Opfern'].tolist(),
    dataframe['Stehlen'].tolist()
    ], np.float)
array = array.T

predict = KMeans(n_clusters=5).fit_predict(array)
print(predict)

Pitcher Leistung

#coding:utf-8
import pandas as pd
import numpy as np
from sklearn.cluster import KMeans

dataframe = pd.read_csv('pitching-2016.csv')

array = np.array([dataframe['Anzahl der Krüge'].tolist(),
    dataframe['Anzahl der Würfe'].tolist(),
    dataframe['Zugegeben'].tolist(),
    dataframe['Verteidigungsrate'].tolist()
    ], np.float)
array = array.T

predict = KMeans(n_clusters=5).fit_predict(array)
print(predict)

Gesamtnote

Ich habe versucht, die Schlag- und Pitcher-Ergebnisse abzugleichen.

#coding:utf-8
import pandas as pd
import numpy as np
from sklearn.cluster import KMeans

batting_dataframe = pd.read_csv('batting-2016.csv')
pitching_dataframe = pd.read_csv('pitching-2016.csv')

array = np.array([batting_dataframe['Anzahl von Spielen'].tolist(),
    batting_dataframe['Schlagdurchschnitt'].tolist(),
    batting_dataframe['Heimatbasis'].tolist(),
    batting_dataframe['Opfern'].tolist(),
    batting_dataframe['Stehlen'].tolist(),
    pitching_dataframe['Anzahl der Krüge'].tolist(),
    pitching_dataframe['Anzahl der Würfe'].tolist(),
    pitching_dataframe['Zugegeben'].tolist(),
    pitching_dataframe['Verteidigungsrate'].tolist()
    ], np.float)
array = array.T

predict = KMeans(n_clusters=5).fit_predict(array)
print(predict)

Ergebnis

Schulname Schlag Krug Umfassend
Clark Memorial International 1 2 2
Nordsee 2 0 1
Hachinohe Gakuin Kosei 3 2 3
Mit Morioka Dai 0 1 0
Tohoku 4 0 1
Omagari 0 2 2
Tsuruoka Higashi 1 4 0
Heiliges Optisches Institut 0 3 0
Joso Gakuin 0 1 2
Sakushin Gakuin 0 3 0
Maebashi Ikuei 0 0 1
Tokuei Hanasaki 1 1 3
Kisarazu-Synthese 4 2 1
Kanto Ichi 1 2 2
Hachioji 3 3 4
Yokohama 1 2 2
Chuetsu 3 3 4
Toyama Daiichi 4 4 3
Sternenkamm 1 3 0
Hokuriku 0 3 0
Yamanashi Gakuin 0 4 0
Chosei Saku 1 1 2
Chukyo 0 4 0
Tsuneha Kikukawa 3 1 3
Toho 3 1 4
Inabe-Synthese 0 4 0
Omi 0 1 2
Shoei Kyoto 0 1 2
Shoshosha 1 0 1
Stadt Amagasaki 4 0 1
Chiben Gakuen 1 2 2
Ichi Wakayama 4 2 3
Rand 0 3 0
Izumo 4 1 3
Soushi Gakuen 0 1 2
Hiroshima Shinjo 4 2 3
Takakawa Gakuen 3 0 3
Naruto 1 4 0
Zensei Gakuen 4 3 3
Matsuyama Seiryo 4 2 3
Meitoku Gijuku 0 4 0
Kyushu International University 0 2 2
Karatsu-Quotient 1 3 2
Nagasaki-Quotient 1 2 2
Shudakekan 3 4 4
Oita 0 3 2
Nichinan Gakuen 0 4 0
Kanan 2 2 1
Kadena 1 2 2

Zusammenfassung

Es scheint verschiedene Tsukkomi zu geben, aber es scheint, dass 0 oder 4 nicht stärker ist, weil die Trends der Daten numerisch ähnlich sind. Nun, die Daten des lokalen Turniers sind bei Koshien völlig anders, und es kann nicht anders, als es tief zu verfolgen.

Da der Zweck nicht darin besteht, die siegreiche Schule vorherzusagen, werde ich den Inhalt nicht mehr erwähnen, aber ich werde ihn auf die durchschnittliche Trefferquote pro Spiel usw. neu berechnen, oder wenn es mehrere Hauptakteure gibt, wird dies ebenfalls gemittelt Ich bin der Meinung, dass unterschiedliche Ergebnisse erzielt werden können, wenn Informationen wie die Anzahl der Würfe für jeden Wurf untersucht und feinere numerische Werte für das Clustering angegeben werden. Ich denke, dieser Bereich ist ein wichtiger Bereich der Datenwissenschaft, aber dieses Mal möchte ich ihn beenden.

Recommended Posts

Clustering repräsentativer Schulen im Sommer 2016 mit Scikit-Learn
Clustering mit Scikit-Learn (1)
Clustering mit Scikit-Learn (2)
Clustering mit scikit-learn + DBSCAN
DBSCAN (Clustering) mit Scikit-Learn
Identifizieren Sie Ausreißer mit dem Random Forest Classifier von scikit-learn
Die grundlegendste Clusteranalyse mit Scikit-Learn
Füllen Sie fehlende Werte mit Scikit-learn impute aus
Isomap mit Scikit-lernen
Clustering mit Python-Louvain
DBSCAN mit Scikit-Learn
Prognostizieren Sie die zweite Runde des Sommers 2016 mit scikit-learn
PCA mit Scikit-Learn
kmeans ++ mit scikit-learn
(Fortsetzung) Probieren Sie andere Entfernungsfunktionen mit kmeans in Scikit-learn aus
Clustertext in Python
Kreuzvalidierung mit Scikit-Learn
Scikit-Lernen mit Chemoinfomatik
Installieren Sie scikit.learn mit pip
Berechnen Sie tf-idf mit scikit-learn