[PYTHON] Verwenden Sie die Clustering-Ergebnisse erneut

Data Mining ist die Anwendung von Analysetechniken auf große Datenmengen, um bisher unbekannte Datenmerkmale zu entdecken und neue Erkenntnisse zu gewinnen. Dabei werden häufig Techniken verwendet, die beim maschinellen Lernen üblich sind.

Wenn Sie das Ergebnis eines unbeaufsichtigten Lernens haben, können Sie das Wissen einfach auf den Rest der Daten anwenden und die Genauigkeit des Ergebnisses als Trainingsdaten verbessern.

Klassifizieren Sie die Noten der Schüler für die gesamte Note

Letztes Mal stellte ein Beispiel für die Gruppierung von Schülern nach ihrer Tendenz anhand ihrer Noten vor. Der für diese Schüler zuständige Lehrer war der Ansicht, dass die Schüler der gesamten Klasse anhand der Ergebnisse dieser Gruppierung klassifiziert werden könnten.

Die Unterstützungsvektormaschine, die eine Art Diskriminanzfunktion darstellt, und die naiven Buchten, die ein probabilistischer Klassifikator sind, haben völlig unterschiedliche Ideen und Methoden.

Verwenden Sie Scikit-Learn

Es gibt viele großartige Dinge über Scikit-Learn, aber eine davon ist die konsistente API, die auf unterschiedliche Weise entwickelt wurde. Ich denke, es kann mit ähnlichem Code implementiert werden.

import numpy as np
from sklearn.cluster import KMeans
from sklearn.naive_bayes import GaussianNB
from sklearn import svm

#Da die Datenbuchung redundant ist, wird sie durch Kommas getrennt..Im zu lesenden Format csv
features = np.genfromtxt('data.csv', delimiter=',')

# K-bedeutet, Etiketten durch Clustering zu klassifizieren
kmeans_model = KMeans(n_clusters=3, random_state=10).fit(features)
labels = kmeans_model.labels_

clf = GaussianNB() #Naiver Bayes-Klassifikator mit Gaußschem Kernel
#clf = svm.SVC(kernel='rbf', C=1) #RBF Kernel Support Vector Machine

#Trainieren Sie den Klassifikator basierend auf den Clustering-Ergebnissen
clf.fit(features, labels)

#Zu testende Daten(Noten anderer Schüler in der Klasse)Lesen
test_X = np.genfromtxt('test.csv', delimiter=',')

#Nach Klassifikator sortieren
results = clf.predict(test_X)

#Ergebnisse sortieren und anzeigen
ranks = []
for result, feature in zip(results, test_X):
    ranks.append([result, feature, feature.sum()])

ranks.sort(key=lambda x:(-x[2]))

for rank in ranks:
    print(rank)

Zusammenfassung

Sie können es sehen, indem Sie tatsächlich Beispieldaten vorbereiten, aber ich denke, Sie können visuell verstehen, wie sich die Grenzen jeder Klasse mit jeder Methode ändern. Von hier an werden wir über jede Theorie sprechen.

Recommended Posts

Verwenden Sie die Clustering-Ergebnisse erneut
Illustration der Ergebnisse des Rucksackproblems
Clustering-Methode Clustering
Der Beginn von cif2cell
Die Bedeutung des Selbst
Die Geschichte von sys.path.append ()
Rache der Typen: Rache der Typen
Unterschied in den Ergebnissen abhängig vom Argument von multiprocess.Process
Clustering G-bedeutet, dass die Anzahl der Cluster automatisch bestimmt wird
Richten Sie die Version von chromedriver_binary aus
Scraping das Ergebnis von "Schedule-Kun"
10. Zählen der Anzahl der Zeilen
Die Geschichte des Baus von Zabbix 4.4
Auf dem Weg zum Ruhestand von Python2
Visualisieren Sie die Ergebnisse von Entscheidungsbäumen, die mit Python scikit-learn erstellt wurden
Vergleichen Sie die Schriftarten von Jupyter-Themen
Holen Sie sich die Anzahl der Ziffern
Datenanalyse basierend auf den Wahlergebnissen der Gouverneurswahl von Tokio (2020)
Wie man die Ergebnisse von FreeSurfer ~ aparc, aseg, wmparc ~ zusammenfasst
GoPiGo3 des alten Mannes
Berechnen Sie die Anzahl der Änderungen
Ändern Sie das Thema von Jupyter
Die Popularität von Programmiersprachen
Ändern Sie den Stil von matplotlib
Visualisieren Sie die Flugbahn von Hayabusa 2
Über die Komponenten von Luigi
Verknüpfte Komponenten des Diagramms
Filtern Sie die Ausgabe von tracemalloc
Über die Funktionen von Python
Simulation des Inhalts der Brieftasche
Die Kraft der Pandas: Python
Speichern Sie das Ergebnis des Crawls mit Scrapy im Google Data Store
Die Geschichte, wie man Python ausführt und die Ergebnisse anzeigt, ohne vim zu schließen
[GWAS] Zeichnen Sie die Ergebnisse der Hauptkomponentenanalyse (PCA) von PLINK auf
Die Spezifikationen von Pytz haben sich geändert
Testen Sie die Version des Argparse-Moduls
Finden Sie die Definition des Wertes von errno
Zeichnen Sie die Ausbreitung des neuen Koronavirus
Die Geschichte von Python und die Geschichte von NaN
Erhöhen Sie die Version von pyenv selbst
Holen Sie sich die Anzahl der Ansichten von Qiita
[Python] Der Stolperstein des Imports
Erster Python 3 ~ Der Beginn der Wiederholung ~
Japanische Übersetzung des e2fsprogs-Handbuchs
Die Geschichte der Teilnahme an AtCoder
Ändern Sie den Hintergrund von Ubuntu (GNOME)
Ist die Niederschlagswahrscheinlichkeit korrekt?
Ich habe den Mechanismus der Flaschenanmeldung untersucht!
Treten Sie ein in die Dunkelheit von msync
Nimm das Ausführungsprotokoll von Sellerie
Testen Sie die Eignung der Verteilung
Berechnung der Anzahl der Assoziationen von Klamer
pyenv-change die Python-Version von virtualenv
Über den Rückgabewert von pthread_mutex_init ()
Kombinieren Sie die Überlappung eindimensionaler Abschnitte
Ruft die Attribute eines Objekts ab
Lösen Sie die Verzögerung der Interferometerbeobachtung