Erstellen Sie Dummy-Daten mit den NumPy- und Faker-Paketen von Python

Warum bei Dummy-Daten bleiben

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.

Bestimmen Sie ein Dummy-Datenszenario für Kundendaten

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.

Erstellen wir Kunden-Dummy-Daten mit Python

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)

Erstellen Sie eine eindeutige Kunden-ID

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

Erstellen Sie einen beliebigen Kundennamen

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()

Erstellen Sie gleichmäßig verteilte Altersdaten

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)

Erstellen Sie Daten zur Normalverteilungshöhe

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.

Erstellen Sie jährliche Einkommensdaten mit logarithmischer Normalverteilung

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)

Erstellen Sie eine Autobesitzer-Flagge

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)

Heiratsstatus erstellen

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.

Zusammenfassung

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

Erstellen Sie Dummy-Daten mit den NumPy- und Faker-Paketen von Python
Erstellen Sie eine Dummy-Datendatei
So erstellen Sie mit Faker eine CSV-Dummy-Datei mit Japanisch
Machen Sie einen Mario mit Numpy und OpenCV
Erstellen Sie Dokumentation und Testcode mit doctest.testfile ()
[Python] Verschiedene Datenverarbeitung mit Numpy-Array
Erstellen Sie Dokumentklassifizierungsdaten schnell mit NLTK
Sammeln Sie Daten mit Scrapy und füllen Sie mongoDB
Generieren und veröffentlichen Sie Dummy-Bilddaten mit Django
[Python] Vertauschen von Zeilen und Spalten mit Numpy-Daten
Erstellen Sie mit CadQuery 3D-Druckerdaten (STL-Datei)
Erstellen Sie mit Kaitai Struct einen Binärdatenparser
Erstellen Sie eine Webmap mit Python und GDAL