Open Source im professionellen Einsatz
Linux-Magazin 08/2017
414

Fahrpraxis

Listing 3 liest die CSV-Datei in einen Pandas-Dataframe ein. Die Liste »Y« erhält die Einträge, die von Hand mit »M« oder »A« ergänzt wurden, in der Spalte »driver« als gewünschte Ergebnisse. In »X« steht ab Zeile 9 eine zweidimensionale Liste, in der reihenweise Trip-Daten stehen, die den Wochentag (»dow« : 1-7), die Anzahl der gefahrenen Kilometer (»miles« ), Brems- und Beschleunigungsvorgänge (»brakes« und »accels« ), eine Geschwindigkeitswertung (»speed« ) sowie die Fahrzeug-ID (»vehicle« ) enthalten.

Listing 3

driver.py

01 #!dt/bin/python3
02 from sklearn import tree
03 import pandas as pd
04
05 df = pd.read_csv("trips-learn.csv",
06         header = 0)
07
08 Y = df['driver']
09 X = df[['dow', 'miles', 'brakes', 'accels',
10         'speed', 'vehicle']]
11
12 clf = tree.DecisionTreeClassifier()
13 clf = clf.fit(X, Y)
14
15    # Check predictions
16 for input in [[6,2000,0,2,20,1],
17               [6,2000,0,2,0,1]]:
18     print( input, ":",
19            clf.predict( [input] ) )

Wie in der vorherigen Theorievorlesung kommt auch in Listing 3 die »sklearn« -Klasse »DecisionTreeClassifier« zum Einsatz, deren Methode »fit« die Trainingsdaten verarbeitet und später mit »predict()« neue Ergebnisse voraussagt.

Erstaunlicherweise errät »driver.py« in Abbildung 4 bei neuen Trip-Records, deren Kilometerstand bisher noch nirgends in den Testdaten vorkam, und beim gleichen Auto (»1« : Honda Fit) nur aufgrund der Geschwindigkeitspunkte die Fahrer einmal als »M« und einmal als »A« . Der Entscheidungsbaum hat also nach tiefschürfender Analyse festgestellt, dass dies das wesentliche Unterscheidungsmerkmal der beiden Fahrer ist.

Abbildung 4: Nach der Lernphase identifiziert der Entscheidungsbaum Autofahrer am Fahrverhalten.

Im ersten Versuch liefert das Verfahren schon sehr ordentliche Ergebnisse, wie zuverlässig sie wirklich sind, sollen später weitere Testdaten zeigen. Besteht Verbesserungsbedarf führen mehr Trainingsdaten dann auch zu einem besseren Entscheidungsbaum.

Infos

  1. Listings zu diesem Artikel: http://www.linux-magazin.de/static/listings/magazin/2017/08/snapshot/
  2. Kirthi Raman, Ashish Kumar, Martin Czygan Phuong Vo.T.H, "Python: Data Analytics and Visualization": Packt Publishing, 2017
  3. Alpha Go: https://deepmind.com/research/alphago/
  4. Prateek Joshi, "Artificial Intelligence with Python": 2017, Packt Publishing
  5. Michael Schilli, "Auf heißer Spur": Linux-Magazin 07/17, S. 104, http://www.linux-magazin.de/Ausgaben/2017/07/Snapshot
  6. Michael Schilli, "Wege zum Connected Car": Linux-Magazin 10/16, S. 84, http://www.linux-magazin.de/Ausgaben/2016/10/Perl-Snapshot

Der Autor

Michael Schilli arbeitet als Software-Engineer in der San Francisco Bay Area in Kalifornien. In seiner seit 1997 laufenden Kolumne forscht er jeden Monat nach praktischen Anwendungen verschiedener Programmiersprachen. Unter mailto:mschilli@perlmeister.com beantwortet er gerne Fragen.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 3 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Video zum Snapshot 08/2017

    Mit künstlicher Intelligenz bauen Programme Entscheidungsbäume selbstständig auf, indem sie aus vorliegenden Messwerten lernen. So ermittelt Mike Schilli, welches seiner Autos welchen Fahrer hatte.

  • Perl-Snapshot

    Ein in den Diagnose-Port von Michael Schillis Auto(s) gestöpselter Stecker sendet an das mitreisende Mobiltelefon per Bluetooth aktuelle Informationen wie Geschwindigkeit, Beschleunigung, Benzinverbrauch. Eine App und ein programmierbares API lesen die Daten aus und stellen sie ansprechend dar.

  • Snapshot

    Anhand von Trainingsdaten in Form von täglich im Auto erfassten Kilometerständen versucht Michael Schillis KI-Programm Muster im Fahrverhalten zu erkennen und Prognosen abzugeben.

  • Perl-Snapshot

    Der Projekthoster Github beherbergt nicht nur die Code-Repositories vieler bekannter Open-Source-Projekte, sondern bietet auch ein durchdachtes API an, mit dem sich in ihnen herrlich herumschnüffeln lässt.

comments powered by Disqus

Ausgabe 10/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.