[PYTHON] Ich habe versucht, den Getränkepräferenzdatensatz durch Tensorzerlegung zu visualisieren.

Dieser Artikel ist der 9. Tagesartikel von Furukawa Lab Advent_calendar. Dieser Artikel wurde von einem Studenten des Furukawa Lab als Teil seines Lernens geschrieben. Der Inhalt kann mehrdeutig sein oder der Ausdruck kann leicht abweichen.

Einführung

Ich wollte einen Artikel zeichnen, um Beverage Preference Data Set vorzustellen, aber das Programm läuft noch nicht. Ich werde es von Zeit zu Zeit bearbeiten.

Beverage Preference Data Set

Der Getränkepräferenzdatensatz enthält die tatsächlichen Daten der zugehörigen Daten, die vom Furukawa Laboratory veröffentlicht wurden. Detaillierte Regeln finden Sie unter dem Link.

Daten aus einer Umfrage unter 604 Benutzern zur Bewertung von 14 Trinkwassertypen in jeder von 11 Situationen.

Mit anderen Worten, es sind die relationalen Daten, die durch die Kombination der Elemente der drei Populationen (Person) x (Trinkwasser) x (Situation) beobachtet werden. image.png

import Das Verfahren zum Importieren des Getränkepräferenzdatensatzes ist wie folgt. Die Methoden download_file und zip_extract Python-Tipps: Ich möchte eine Zip-Datei aus dem Internet herunterladen und verwenden Ich habe mir geliehen.

import pandas as pd
import numpy as np

filename = download_file('http://www.brain.kyutech.ac.jp/~furukawa/beverage-e/BeveragePreferenceDataset.zip')
zip_extract(filename)
df = pd.read_table('./BeveragePreferenceDataset/Beverage604.txt', header=None, delim_whitespace=True)
df.shape
# (8456, 11)

Konvertieren Sie diesen Datenrahmen in kubische Tensordaten.


X = np.zeros((604, 14, 11))
for i in range(X.shape[0]):
  Before = i * 14
  X[i] = df.iloc[Before:(14*(i+1))].values
X.shape
# (604, 14, 11)

Tensolzersetzung

CP-Zersetzung

Über CP-Zerlegung Pioneer (Tensor-Zersetzung mit Pytorch (CP-Zersetzung)) ist hier, daher werde ich es leicht erklären.

Die CP-Zerlegung ist eine einfache Verallgemeinerung der Matrixzerlegung, bei der der kubische Tensor $ X $ unter Verwendung von drei Vektoren wie folgt zerlegt wird:

X = \sum_{r=1}^R u_r \circ v_r \circ w_r

image.png

R=1 image.png

R=2 image.png

image.png

U (Benutzer) wird in einer ovalen Form gesprüht, und V (Trinkwasser) unterscheidet sich wahrscheinlich nur durch zwei Arten von den anderen.

Zusammenfassung

Ich würde gerne HOSVD und Tucker ausprobieren. Ich werde es erneut versuchen, wenn ich Zeit habe. Diesmal habe ich eine lineare Tensorzerlegungsmethode ausprobiert, aber es gibt auch einen * Tensor SOM *, der einer nichtlinearen Tensorzerlegung entspricht. Wenn Sie interessiert sind, versuchen Sie bitte, mit dem unten stehenden Link zu spielen.

TensorSOM3 Viewer (Trinkwasserdaten) ver Japanisch

Recommended Posts

Ich habe versucht, den Getränkepräferenzdatensatz durch Tensorzerlegung zu visualisieren.
Ich habe versucht, die Spacha-Informationen von VTuber zu visualisieren
[Python] Ich habe versucht, die folgende Beziehung von Twitter zu visualisieren
[TF] Ich habe versucht, das Lernergebnis mit Tensorboard zu visualisieren
Ich habe versucht, Pytorchs Datensatz zu erklären
Ich habe versucht, den Ball zu bewegen
Ich habe versucht, den Abschnitt zu schätzen.
Ich habe versucht, die Befehle zusammenzufassen, die Anfängeringenieure heute verwenden
Ich ließ RNN Sin Wave lernen und versuchte vorherzusagen
Ich habe versucht, Boeing die Geigenleistung durch Posenschätzung vorzustellen
Ich habe versucht, das Schichtplanungsproblem mit verschiedenen Methoden zu lösen
Ich habe versucht, den allgemeinen Zustand der VTuber-Kanalbetrachter zu visualisieren
Ich habe versucht, den Befehl umask zusammenzufassen
Ich habe versucht, AutoEncoder mit TensorFlow zu visualisieren
Ich versuchte das Weckwort zu erkennen
Ich habe versucht, die grafische Modellierung zusammenzufassen.
Ich habe versucht, das Umfangsverhältnis π probabilistisch abzuschätzen
Ich habe versucht, die COTOHA-API zu berühren
[Python] Ich habe versucht, die Nacht der Galaxienbahn mit WordCloud zu visualisieren!
Ich habe versucht, das Bild durch Klicken mit der rechten und linken Maustaste in den angegebenen Ordner zu verschieben
Ich habe versucht, die Altersgruppe und die Ratenverteilung von Atcoder zu visualisieren
Ich habe versucht, den allgemeinen Ablauf bis zur Erstellung von Diensten selbst zusammenzufassen.
765 Ich habe versucht, die drei Berufsfamilien durch CNN zu identifizieren (mit Chainer 2.0.0).
Ich habe versucht, die optimale Route des Traumlandes durch (Quanten-) Tempern zu finden
Ich habe versucht, die Beschleunigung von Python durch Cython zu verifizieren und zu analysieren
Ich habe versucht, den Text des Romans "Wetterkind" mit Word Cloud zu visualisieren
Ich habe versucht, das Modell mit der Low-Code-Bibliothek für maschinelles Lernen "PyCaret" zu visualisieren.
Ich habe versucht, die Linux-Befehle zusammenzufassen, die heute von Anfängeringenieuren verwendet werden - Teil 1-
Ich habe versucht, das Ergebnis des A / B-Tests mit dem Chi-Quadrat-Test zu überprüfen
Ich habe versucht, die Neujahrskarte selbst mit Python zu analysieren
Ich habe versucht, die Blasensortierung nach Sprache zu programmieren
Ich habe Web Scraping versucht, um die Texte zu analysieren.
Ich habe versucht, das Lesen von Dataset mit PyTorch zu implementieren
Ich habe versucht, durch Schaben ein Bild zu bekommen
Ich habe versucht, die Trapezform des Bildes zu korrigieren
Ich habe versucht, das Datetime-Modul von Python zu verwenden
Qiita Job Ich habe versucht, den Job zu analysieren
LeetCode Ich habe versucht, die einfachen zusammenzufassen
Ich habe versucht, Drachenkugeln nach Adalin zu klassifizieren
Ich habe versucht, das Problem des Handlungsreisenden umzusetzen
Ich habe versucht, die Texte von Hinatazaka 46 zu vektorisieren!
Ich habe versucht, die Tweets von JAWS DAYS 2017 mit Python + ELK einfach zu visualisieren
Ich habe versucht, das Vorhandensein oder Nichtvorhandensein von Schnee durch maschinelles Lernen vorherzusagen.
Ich habe versucht, die Veränderung der Schneemenge für 2 Jahre durch maschinelles Lernen vorherzusagen
Ich habe versucht, die Daten des Laptops durch Booten unter Ubuntu zu retten
Ich habe versucht, den G-Test und die E-Qualifikation durch Training ab 50 zu bestehen
Ich habe versucht, die Sündenfunktion mit Chainer zu trainieren
Ich habe versucht, die in Python installierten Pakete grafisch darzustellen
[Einführung] Ich habe versucht, es selbst zu implementieren, während ich den Dichotomiebaum erklärte
Ich habe versucht, Iris aus dem Kamerabild zu erkennen
Ich habe versucht, die Grundform von GPLVM zusammenzufassen
[Erste Datenwissenschaft ⑤] Ich habe versucht, meinem Freund zu helfen, die erste Eigenschaft durch Datenanalyse zu finden
Ich habe versucht, das Spiel in der J League vorherzusagen (Datenanalyse)
Ich habe versucht, Soma Cube mit Python zu lösen
Ich habe versucht zu verstehen, wie Pandas und multiple Co-Linearität unter Verwendung des Affairs-Datensatzes als Thema verwendet werden.
Ich habe versucht zu debuggen.
Ich habe versucht, die Sündenfunktion mit Chainer zu approximieren
Ich habe versucht, Pytest in die eigentliche Schlacht zu bringen