Einführung von "Scikit-Mobility", einer Bibliothek, mit der Sie menschliche Flussdaten mit Python einfach analysieren können (Teil 1)

Inhalt dieses Artikels

Einführung in die Bibliothek "** Scikit-Mobilität **" für den Umgang mit menschlichen Flussdaten in Python. Dieses Mal wird der Inhalt einführend sein, damit Menschen, die "Was sind überhaupt menschliche Flussdaten?" Sind, interessiert sind.

  1. Zuallererst
  2. Was sind menschliche Flussdaten?
  3. Was können Sie mit Scikit-Mobilität machen?
  4. Annahmen
  5. Bibliotheksinstallation
  6. Sehen wir uns die Bewegungsverlaufsdaten an
  7. Diesmal zu verwendender Datensatz
  8. Daten lesen
  9. Visualisieren Sie den Bewegungsverlauf auf der Karte
  10. Zusammenfassung

logo_skmob.png

github[https://github.com/scikit-mobility/scikit-mobility]

1. Zuallererst

Kennen Sie eine Python-Bibliothek namens "** Scikit-Mobility **"? Erst letztes Jahr erstellt, die Sie möglicherweise noch nicht kennen. ** Zur Analyse menschlicher Bewegungsdaten (im Folgenden als menschliche Flussdaten bezeichnet) Eine Funktionsbibliothek **. In den letzten Jahren wurde eine große Menge an Standortinformationen in Karten-Apps und SNS gesammelt und Algorithmen zur Verarbeitung und Analyse von Daten zum menschlichen Fluss, einschließlich der Bewertung von Datenschutzrisiken, wurden eingeführt.

Zunächst möchte ich kurz "** Was sind menschliche Flussdaten? " und " Was kann Scikit-Mobilität tun? **" vorstellen.

2. Was sind menschliche Flussdaten?

Scikit-Mobilität verarbeitet hauptsächlich ** 2 Arten ** von Daten.

  1. ** Bewegungsverlaufsdaten (Trajektorien) ** Breiten- und Längengraddaten zeigen die Bewegungsbahn. Für vertraute Elemente können Sie GPS verwenden, um aktuelle Standortinformationen zu sammeln und zu analysieren, die in Karten-Apps und SNS verwendet werden, sowie das langfristige Verhalten in Forschung und Forschung. map_0_1.png

  2. ** Bewegliche Flussdaten (Flüsse) ** Es sind die Daten des Bewegungsflusses von Menschen zwischen Orten. Es sind Daten, die zeigen, wie viele Personen von einem bestimmten Ort (Startpunkt / Orient) zu einem bestimmten Ort (Endpunkt / Ziel) wie einer OD-Umfrage gegangen sind.

map_0_2.png

3. Was können Sie mit Scikit-Mobilität machen?

Mit Scikit-Mobilität können Sie die folgende Analyse von menschlichen Flussdaten problemlos durchführen.

Ich möchte mich in Zukunft mit jedem Inhalt befassen. Dieses Mal möchte ich jedoch kurz zuvor etwas mehr über "** Was sind menschliche Flussdaten überhaupt? **" vorstellen.

4. Annahmen

Ausführungsumgebung

Installation

Lassen Sie uns zuerst die Bibliothek installieren.

$ pip install scikit-mobility

5. Umgang mit Bewegungsverlaufsdaten

Diesmal verwendeter Datensatz

Verwenden Sie die auf Github bereitgestellten Beispieldaten. (* Bitte beachten Sie, dass es automatisch heruntergeladen wird. Es handelt sich um eine Textdatei von ca. 2 MB.)

Dies wird von Microsoft GeoLife GPS Trajectories veröffentlicht % 2Fen-us% 2Fdownloads% 2Fb16d359d-d164-469e-9fd4-daa38f2b2e13% 2F). Das Microsoft Research Asia Geolife-Projekt sammelt von 2007 bis 2012 GPS-Protokolldaten für 182 Benutzer in Peking.

Die Beispieldaten enthalten Daten für zwei von ihnen.

Daten lesen

Lesen wir die heruntergeladenen Daten.

Erstellen eines TrajDataFrame

Bewegungsverlaufsdaten werden mit einem Datentyp namens "TrjDataFrame" gelesen. Dies ist eine Erweiterung des DataFrame von pandas.

#Daten lesen
tdf = skmob.TrajDataFrame.from_file('geolife_sample.txt.gz'
                                    ,latitude='lat'
                                    ,longitude='lon'
                                    ,user_id='user'
                                    ,datetime='datetime'
                                    )
#Überprüfen Sie den Inhalt
print(tdf.head())

Der Inhalt ist so.


   uid        lat         lng            datetime
0    1  39.984094  116.319236 2008-10-23 13:53:05
1    1  39.984198  116.319322 2008-10-23 13:53:06
2    1  39.984224  116.319402 2008-10-23 13:53:11
3    1  39.984211  116.319389 2008-10-23 13:53:16

Erforderliche Argumente

Um "TrajDataFrame" zu erstellen, müssen Sie die Spaltennamen angeben, die den drei Argumenten entsprechen.

Dies sind die grundlegenden Informationen der Bewegungsgeschichte, z. B. "wann und wo Sie waren".

Möglichkeit

Optional können Sie auch die folgenden Argumente angeben

Natürlich kann jede andere Spalte problemlos gelesen werden.

Erstellt aus einem Datenrahmen

Es ist auch möglich, von einem Datenrahmen in einen "TrajDataFrame" zu konvertieren.

import pandas as pd
import skmob
#Vorbereitung der Probendaten
data_list = [[1, 39.984094, 116.319236, '2008-10-23 13:53:05'], 
            [1, 39.984198, 116.319322, '2008-10-23 13:53:06'],
            [1, 39.984224, 116.319402, '2008-10-23 13:53:11'],
            [1, 39.984211, 116.319389, '2008-10-23 13:53:16']]
#Erstellen Sie einen Datenrahmen
data_df= pd.DataFrame(data_list, columns=['user', 'lat', 'lon', 'datetime'])
print('Vor der Konvertierung: ', type(data_df)) 
#In TrjDataFrame konvertieren
tdf = skmob.TrajDataFrame(data_df, latitude='lat', longitude='lon', datetime='datetime', user_id='user')
print('Nach der Konvertierung: ', type(tdf))
print(tdf.head())
Vor der Konvertierung:  <class 'pandas.core.frame.DataFrame'>
Nach der Konvertierung:  <class 'skmob.core.trajectorydataframe.TrajDataFrame'>

   uid        lat         lng            datetime
0    1  39.984094  116.319236 2008-10-23 13:53:05
1    1  39.984198  116.319322 2008-10-23 13:53:06
2    1  39.984224  116.319402 2008-10-23 13:53:11
3    1  39.984211  116.319389 2008-10-23 13:53:16

Versuchen Sie, den Bewegungsverlauf auf der Karte zu visualisieren

Sie können nicht erkennen, wo sich die Breiten- und Längengrade befinden, indem Sie nur die Zahlen betrachten. Es ist wichtig, auf der Karte zu überprüfen. TrajDataFrame kann wie folgt einfach visualisiert werden.

Zeichnen Sie den Bewegungsverlauf auf der Karte

tdf.plot_trajectory(zoom=12, weight=3, opacity=0.9, tiles='Stamen Toner')

Jede UID wird automatisch farbcodiert und angezeigt. Wenn Sie auf die Karte schauen, können Sie sehen, wohin Sie sich bewegt haben, wie viel Aktivität Sie haben und wohin Sie gehen. map_1.png

Karte verkleinern

Sie können sehen, wie weit sich der Benutzer bewegt hat, indem Sie herauszoomen, bis Sie den gesamten Aktivitätsbereich sehen können. Ein Benutzer ist ziemlich weit gegangen. map_3.png

Popup-Anzeige der Start- und Endpunkte

Zusätzlich werden Markierungen für das erste Protokoll (grün) und das letzte Protokoll (rot) jedes Benutzers angezeigt. Klicken Sie hier, um Zeit und Breite / Länge anzuzeigen map_2.png

Indem Sie es auf diese Weise auf der Karte visualisieren, wird es einfacher, die Bewegung des Benutzers zu verstehen.

6. Zusammenfassung

Was haben Sie gedacht. Dieses Mal habe ich kurz die Scikit-Mobilität und die Art der damit verbundenen Daten vorgestellt. Da Sie die Bewegungsverlaufsdaten normalerweise nicht sehen, haben Sie sie möglicherweise zum ersten Mal gesehen. Ich hoffe, Sie nutzen diese Gelegenheit, um sich für die Analyse menschlicher Flussdaten zu interessieren. Wenn Sie Google Map verwenden, kann es interessant sein, Ihre Standortinformationen herunterzuladen und zu analysieren. (Google Map-Verlauf herunterladen (Zeitleiste)) Im nächsten und den folgenden Artikeln möchte ich Flussdaten sowie spezifische Funktionen und Algorithmen vorstellen. Das ist alles für diese Zeit! Danke fürs Lesen!

Recommended Posts

Einführung von "Scikit-Mobility", einer Bibliothek, mit der Sie menschliche Flussdaten mit Python einfach analysieren können (Teil 1)
Ein Hinweis, mit dem Sie die Python-Umgebung von Pineapple mit pyenv ändern können
[Einführung in Python] So erhalten Sie den Datenindex mit der for-Anweisung
Ich möchte Daten mit Python analysieren können (Teil 3)
Ich möchte Daten mit Python analysieren können (Teil 1)
Ich möchte Daten mit Python analysieren können (Teil 4)
Ich möchte Daten mit Python analysieren können (Teil 2)
Lern-Roadmap, mit der Sie Services mit Python von Grund auf neu entwickeln und veröffentlichen können
Python-Skript, das den Status des Servers über den Browser überprüfen kann
Ich habe eine Bibliothek erstellt, die Konfigurationsdateien mit Python einfach lesen kann
Erstellt einen Dienst, mit dem Sie J-League-Daten durchsuchen können
Wir haben eine Erweiterung veröffentlicht, mit der Sie Xarray-Daten wie eine Python-Datenklasse definieren können.
[Einführung in Data Scientist] Grundlagen von Python ♬
[Einführung in Python] So sortieren Sie den Inhalt einer Liste effizient mit Listensortierung
Code lesen von faker, einer Bibliothek, die Testdaten in Python generiert
Erstellen Sie ein Plugin, mit dem Sie in Python nach Registerkarten für Sublime Text 3 suchen können
Sie können auch mit Python problemlos eine GUI erstellen
Kostenlose Version von DataRobot! ?? Einführung in "PyCaret", eine Bibliothek, die maschinelles Lernen automatisiert
Holen Sie sich mit Python eine große Menge von Starbas Twitter-Daten und probieren Sie die Datenanalyse Teil 1 aus
PhytoMine-How zur effizienten Erfassung von Gensequenzdaten einer bestimmten Pflanzenart mit Python
[Python] Einführung in das WEB-Scraping | Zusammenfassung der Methoden, die mit dem Webdriver verwendet werden können
Memo mit Python mit HiveServer2 von EMR verbunden
Zusammenfassung der Tools, die zum Analysieren von Daten in Python benötigt werden
[Kapitel 5] Einführung in Python mit 100 Klopfen Sprachverarbeitung
Lesehinweis: Einführung in die Datenanalyse mit Python
[Kapitel 3] Einführung in Python mit 100 Klopfen Sprachverarbeitung
Ein Server, der POST-Daten mit flask / python wiedergibt
[Kapitel 2] Einführung in Python mit 100 Klopfen Sprachverarbeitung
[Python] Eine praktische Bibliothek, die Kanji in Hiragana konvertiert
[Einführung in Python] Grundlegende Verwendung der Bibliothek matplotlib
[Kapitel 4] Einführung in Python mit 100 Klopfen Sprachverarbeitung
Erstellen Sie mit Raspberry Pi + DHT11 ganz einfach einen TweetBot, der Sie über Temperatur und Luftfeuchtigkeit informiert.
[Python] Extrahiert Datenrahmen von Pandas, die einer bestimmten Spalte nicht mit anderen Datenrahmen entsprechen
[Einführung in cx_Oracle] (Teil 6) Zuordnung von DB- und Python-Datentypen
Ein Memo, das mit Python & Spark Daten aus dashDB liest
Veröffentlichung einer Bibliothek, die Zeichendaten in Python-Bildern verbirgt
So mischen Sie einen Teil der Python-Liste (at random.shuffle)
Eine Sammlung wettbewerbsfähiger Pro-Techniken, die mit Python gelöst werden können
20200329_Einführung in die Datenanalyse mit Python 2nd Edition Personal Summary
Einführung in Python, die auch Affen verstehen können (Teil 3)
[Einführung in Data Scientists] Grundlagen von Python ♬ Funktionen und Klassen
[Raspi4; Einführung in den Sound] Stabile Aufzeichnung der Toneingabe mit Python ♪
Einführung in Python, die auch Affen verstehen können (Teil 1)
Einführung in Python, die auch Affen verstehen können (Teil 2)
Ein Python-Skript, das Oracle-Datenbankdaten in CSV konvertiert
[Einführung in Python] So erhalten Sie Daten mit der Funktion listdir
[Python] Informationen zum Erstellen eines Tools zum Erstellen einer neuen Outlook-E-Mail basierend auf den Daten der JSON-Datei und dem Teil, der abgefangen wurde
Lösen der Einführung von AOJ in Algorithmen und Datenstrukturen in Python -Part1-
Wenn Sie Datenwissenschaftler werden möchten, beginnen Sie mit Kaggle
IPynb-Bewertungssystem mit TA von Introduction to Programming (Python)
Beachten Sie, was Sie getan haben, um Flycheck mit Python zu verwenden
Ich möchte einen Platzhalter verwenden, den ich mit Python entfernen möchte
[Einführung in Python] So teilen Sie eine Zeichenfolge mit der Funktion split
Verwenden Sie networkx, eine Bibliothek, die Diagramme in Python verarbeitet (Teil 2: Lernprogramm).
Erstellt eine Bibliothek für Python, die die morphologische Teilung problemlos handhaben kann
Einführung in die Datenanalyse mit Python P32-P43 [ch02 3.US Babynamen 1880-2010]
Ich habe versucht, mit Python eine Liste von Primzahlen zu erstellen
Einführung in die Datenanalyse mit Python P17-P26 [ch02 1.usa.gov Daten von bit.ly]
Versuchen Sie, Online-Familien-Mahjong mit Python zu analysieren (TEIL 1: Daten aufnehmen)