Die Daten, die Sie bei der Verwendung von Bibliotheken und Tools wie maschinellem Lernen verarbeiten, sind sehr wichtig. Ohne die Daten können Sie nicht einmal eine Demo durchführen. Es ist am besten, reale Daten zu verwenden, aber ich denke, es gibt viele Fälle, in denen Sie nicht die Art von realen Daten haben, nach denen Sie suchen. Vor kurzem haben einige Unternehmen (http://www.nii.ac.jp/dsc/idr/datalist.html) tatsächliche Daten veröffentlicht, die für die Analyse einfach zu verwenden sind, jedoch nur für Forschungszwecke verwendet werden können. In einigen Fällen sind die Nutzungsbedingungen möglicherweise nicht erfüllt.
Wenn Sie nicht über die Daten verfügen, können Sie sie selbst erstellen. Daher ist es praktisch, wenn Sie Dummy-Daten frei erstellen können. Beim Erstellen von Dummy-Daten muss je nach Verwendungszweck eine Methode zum Erstellen entwickelt werden. Ich denke, es kann grob in die folgenden zwei unterteilt werden.
Wenn es bei der Leistungsmessung einfach ist, beispielsweise die Lesegeschwindigkeit aller Daten zu messen, gibt es meines Erachtens viele Fälle, in denen die Anforderungen erfüllt sind, solange die Datenmenge kombiniert wird. Wenn Sie jedoch einige komplizierte Leistungsmessungen durchführen, z. B. das Zusammenfügen und Filtern von Daten mit Komprimierungsrate und SQL, müssen Sie die Kardinalität der Daten berücksichtigen. Wenn alle Werte gleich sind und nur die Datenmenge kombiniert wird, kann das Komprimierungsverhältnis im Vergleich zu den tatsächlichen Daten ungewöhnlich gut sein, was zu unbrauchbaren Messwerten führt.
Für die Datenanalyse sind Dummy-Daten mit einem etwas detaillierteren Szenario erforderlich als für Leistungsmessungen. Wenn ich es in einer Demo zeige, denke ich, dass ich zeigen werde, um welche Art von Analyseergebnis es sich handelt, sodass es mit einer Liste von Zahlen und bedeutungslosen Zeichenfolgen nicht gut aussieht.
Dieses Mal möchte ich das Verfahren zum Erstellen von Dummy-Daten, die in der Datenanalyse verwendet werden, mit ein wenig Aufmerksamkeit einführen, anstatt sie mit einheitlichen Zufallszahlen zu füllen.
Entscheiden Sie, welche Attribute Sie beim Erstellen von Kundendaten haben möchten. Ich möchte Dummy-Daten für die folgenden Elemente erstellen.
Attribut | Dateneigenschaften | Beispiel |
---|---|---|
Kundennummer | Einzigartiger Wert | 12345 |
Kundenname | Beliebiger japanischer Name | Taro Tanaka |
Alter | Gleichmäßige Verteilung | 30 Jahre alt |
Höhe | Normalverteilung | 176cm |
jährliches Einkommen | Normalverteilung protokollieren | 4,56 Millionen Yen |
Autobesitzer-Flagge | 0 Besitz,1 Keine(4:6) | 1 |
Ehe-Status | 0 Single,Ich bin verheiratet,2 Trennung(3:6:1) | 2 |
Dieses Mal ist es ein wenig zur Erklärung, aber ich denke, dass 20 bis 30 Attribute perfekt als Dummy-Daten sind.
Dieses Mal werde ich Dummy-Daten mit Python erstellen. Ich habe Python gewählt, weil ich NumPy verwenden kann, um Werte für verschiedene Distributionen und Faker zu generieren. Dies liegt daran, dass das aufgerufene Paket sehr praktisch ist. (Der größte Grund ist meine persönliche Lieblingssprache)
Da es sich um einen eindeutigen Wert handelt, können Sie ihn vervollständigen, indem Sie Zahlen in der richtigen Reihenfolge mithilfe einer Sequenz oder dergleichen erstellen.
lang:python3.4.3
for i in range(1000)
i
Mit dem Faker-Paket können Sie problemlos Dummy-Daten wie Namen erstellen. Obwohl die Datentypen zurückgegangen sind, ist es möglich, Daten für jedes Land zu generieren.
lang:python3.4.3
from faker import Faker
fake = Faker('ja_JP')
fake.name()
Es gibt eine Vielzahl von Möglichkeiten, und Sie können nur den Nachnamen oder die E-Mail-Adresse generieren. Es gibt nur wenige Muster auf Japanisch, aber einige auf Englisch.
lang:python3.4.3
from faker import Faker
fake = Faker('ja_JP')
fake.last_name()
fake.email()
Da es sich um das Alter des Benutzers handelt, werden Werte von 15 bis 85 zufällig mit einer gleichmäßigen Verteilung generiert.
lang:python3.4.3
import numpy as np
from numpy.random import *
randint(15,85)
Ich bin mir nicht sicher, in welchem Fall die Höhe in den Kundendaten enthalten ist, aber ich kann mir keine anderen Attributwerte vorstellen, die allgemein als Normalverteilung bezeichnet werden.
lang:python3.4.3
import numpy as np
from numpy.random import *
normal(170,6)
Da der Durchschnitt und die Streuung für Männer und Frauen unterschiedlich sind, denke ich, wäre es schön, sie zweimal zu generieren. Da der Durchschnitt und die Varianz nach Geschlecht und Alter in den Umfrageergebnissen des Ministeriums für Gesundheit, Arbeit und Soziales angegeben sind, denke ich, dass es sehr realistische Dummy-Daten sind, wenn die Normalverteilung danach mehrmals generiert wird.
Obwohl das durchschnittliche Jahreseinkommen 4 Millionen Yen beträgt, beträgt der Median 2 Millionen Yen und es gibt einen großen Unterschied zwischen dem durchschnittlichen und dem mittleren Jahreseinkommen. Dies liegt an der Tatsache, dass es eine bestimmte Anzahl von Ausreißern gibt. In der Finanzindustrie heißt es Fat Tail. Lassen Sie uns beim Erstellen solcher Daten Zufallszahlen mit einer logarithmischen Normalverteilung generieren.
lang:python3.4.3
import numpy as np
from numpy.random import *
lognormal(0,1)
Einige der Daten werden als Ja- oder Nein-verwaltetes Flag bezeichnet, z. B. was Sie getan haben oder was Sie haben. Da es grundsätzlich von 0 oder 1 verwaltet wird, können verschiedene Generierungsmethoden in Betracht gezogen werden. Generieren Sie eine Zahl, teilen Sie durch 2 und verwenden Sie den Rest. Dieses Mal erstellen wir Daten mit einer Eigentumsquote von 60%, wobei 1 die Person ist, die das Auto besitzt, und 0 die Person, die das Auto nicht besitzt.
lang:python3.4.3
import numpy as np
from numpy.random import *
CarFlagList = [0,1]
Weight = [0.4,0.6]
np.random.choice(CarFlagList,p=Weight)
Im Gegensatz zu Flags befinden sich einige in mehreren statt in zwei Zuständen. Es ist möglich, es mit einer Kombination von Flags auszudrücken, aber es ist nicht überschaubar, Attribute unnötig zu erhöhen, so dass es üblich ist, mehrere Werte gehorsam zu haben. Dieses Mal werden wir Zufallszahlen aus drei Arten von Daten erstellen: 0 ledig, 1 verheiratet, 2 geschieden, als Heiratsstatus. Das Verhältnis von jedem ist 3: 6: 1.
lang:python3.4.3
import numpy as np
from numpy.random import *
MariageList = ["0 Single","Ich bin verheiratet","2 Trennung"]
Weight = [0.3,0.6,0.1]
np.random.choice(MariageList ,p=Weight)
Sie können eine Zufallszahl nach fast demselben Verfahren wie die Fahrzeugbesitzflagge erstellen. Diesmal ist der Wert keine Zahl, sondern eine Zeichenfolge, aber es ist praktisch, auch hier flexibel reagieren zu können.
Da ich eine Reihe von Zufallszahlengenerierungsmustern geschrieben habe, kann ich Dummy-Daten für jedes Szenario erstellen, indem ich mit dieser Kombination und der For-Anweisung eine Schleife drehe. In einem bestimmten Projekt habe ich Dummy-Daten für 70 Spalten erstellt, aber es war am schwierigsten, die Gewichte für jede der 70 Spalten festzulegen. ..
Recommended Posts