Tipps zur Datenvorverarbeitung mit Python und Scikit Learn

0

1 plus 2 wichtige Datenvorverarbeitungsschritte mit Python, Scikit Learn. Sie können mit der Arbeit an einem Projekt zum maschinellen Lernen und zur Datenanalyse beginnen

Daten sind das Blut des maschinellen Lernens, aber nicht die Datenmenge. Daher ist eine ordnungsgemäße und optimale Datenvorverarbeitung äußerst wichtig, bevor mit der Entwicklung von Modellen für maschinelles Lernen begonnen wird. In diesem Artikel würde ich also einen und zwei wichtige Datenvorverarbeitungsschritte mit Python und Scikit Learn durchgehen. Am Ende dieses Artikels können Sie mit der Ausarbeitung Ihrer eigenen maschinellen Lern- und Datenanalyseprojekte mit praktischen Tipps und Tricks beginnen

Inhaltsverzeichnis: Tipps zur Datenvorverarbeitung mit Python und Scikit Learn

Erstens: Formulieren Sie die Frage

Als Erstes würde ich vorschlagen, sich zu fragen, warum Sie maschinelles Lernen nutzen müssen. Die meisten Leute, die ich zuvor getroffen habe, sagen vielleicht, dass sie gerne Datenanalysen mithilfe von maschinellem Lernen durchführen. Datenanalyse ist ein Ansatz, aber nicht der Zweck. Was den Zweck betrifft, gibt es aus meiner Sicht grundsätzlich drei Arten geschäftlicher Aspekte:

  • Finden Sie neue und optimierbare Elemente, die die Geschäfts- und Betriebsleistung verbessern können
  • Automatisieren Sie Betriebsaufgaben mit betrieblichen Entscheidungen, die von Maschinen getroffen werden.
  • Erstellen und entwickeln Sie interne Nischen-KI-Modelle

Zweitens: Bedeutung der Datenquelle – internes und externes Scraping

Jetzt können Sie mit Ihrem Team klar abstimmen, was der Zweck dieses Modells ist. Dann ist die Datenermittlung und -erfassung das nächste große Ding.

Bei der Bewertung der Datenquelle ist die Qualität immer die wichtigste Messgröße, um zu beurteilen, ob der Datensatz zum Aufbau eines Modells für maschinelles Lernen verwendet werden kann. Dies liegt daran, dass es den maschinellen Lernprozess in die Irre führen und in eine falsche Richtung lenken würde, was das Lernergebnis verfälscht.

Die Definition von Qualität bietet aus meiner Projekterfahrung zwei grundsätzliche Referenzmöglichkeiten. Es handelt sich um firmeninterne und verwertbare Daten. Versuchen Sie einfach nicht, Datensätze von Drittanbietern zu kaufen

Wenn Ihr Unternehmen nicht über ausreichende interne Daten verfügt, ist das Scraping von Daten eine der besten Möglichkeiten, Daten zu sammeln. Denn wir könnten erkennen, woher die Daten stammen, und gezielt die Daten sammeln, die wir benötigen. Wir könnten Scraper-Anbieter wie BuyfromLo nutzen oder intern eine Scraping-App entwickeln.

www.buyfromlo.com/api

www.buyfromlo.com/app

Drittens: Bereinigen von Daten mit Python

Sobald die Aspekte des Datensatzes und der Datenquelle geklärt sind, ist es an der Zeit, die Bereinigung und Strukturierung der Daten zu besprechen. Unabhängig davon, ob es sich um Scraping-Daten oder interne Daten handelt, sind diese möglicherweise nicht so formatiert, dass sie in Modelle für maschinelles Lernen passen, wie z. B. die lineare Regression von Scikit Learn. Hier finden Sie Tipps zur Überprüfung und Bereinigung der Daten.

Schritt 1: Verwandeln Sie Ihren Datensatz in einen DataFrame

Der DataFrame-Typ ist ein Teil der Körperseele beim maschinellen Lernen. Ganz gleich, ob Sie die Daten per CSV eingeben oder die Datenliste per API abrufen, hier ist die Codezeile zu Ihrer Information

Read CSV

import pandas as pd

dataset = pd.read_csv ( 'planprice3.csv' )

Data List

List = [1, 2, 3, 4]

Dataset = pd.DataFrame(List)

Beim CSV-Datensatz kann es vorkommen, dass der Header nicht der von Ihnen festgelegte ist und der von Ihnen festgelegte auf die zweite Rolle zurückzuführen ist. Hier finden Sie die Möglichkeit, dieses Problem zu lösen.

dataset = pd.read_csv ( 'planprice3.csv' )

dataset.columns = dataset.iloc [ 0 ]

dataset = dataset [ 1 :]

Schritt 2: Ermitteln Sie, welche Informationen im Datensatz enthalten sind

pp_dataset.shape

(84359, 13)

Dadurch erfahren Sie, welche Form Ihr Datensatz hat. Die Form bedeutet hier, wie viele Features oder sogenannte Variablen (abhängige plus unabhängige Variablen) und wie viele Instanzen der Datensatz hat.

print ( dataset.info ())

Dies ist eine äußerst nützliche Methode, die Ihnen mehr Details über den Datensatz verrät

<class 'pandas.core.frame.DataFrame'>

RangeIndex: 84359 entries, 1 to 84359

Data columns (total 13 columns):

# Column Non-Null Count Dtype

--- ------ -------------- -----

0 Purchase Date 84359 non-null object

1 Campaign 84359 non-null object

2 Source Desc 84359 non-null object

3 Source Type 84359 non-null object

4 Country 84359 non-null object

5 Company Name 84358 non-null object

6 Amount ($) 84359 non-null object

7 Base Price ($) 84359 non-null object

8 Gender 84359 non-null object

9 Plan Type 84359 non-null object

10 Activity 84359 non-null object

11 Created By Name 84359 non-null object

12 Created by ID 84359 non-null object

dtypes: object(13)

memory usage: 8.4+ MB

Wenn Ihr Datensatz ausschließlich vom Datentyp „Ganzzahl“ ist, können Sie diese Zeile auch verwenden, um das Gesamtbild der Zahl anzuzeigen

dataset.describe ()

Schritt 3: Beheben Sie das Problem mit fehlenden Werten

Wie Sie oben sehen können, ist die Anzahl der Instanzen möglicherweise nicht gleich und einige Funktionen verfügen möglicherweise über weniger Instanzen als andere. Das ist nicht gut für das Training, also hier ist die Möglichkeit, die Dinge konsistent zu machen.

dataset.dropna ( inplace= True )

Schritt 4: Nummerieren Sie alle Daten

Maschinelles Lernen ist nicht in der Lage, Zeichenfolgen zu lesen und nur ganze Zahlen und Zahlen sind lesbar. Tatsächlich enthält der Datensatz in der realen Welt so viele Zeichenfolgen. Wir müssen also Zeichenfolgen in Zahlen umwandeln. Hier sind die Scikit-Bibliotheken und der Code, um dies zu erreichen.

from sklearn.preprocessing import LabelEncoder

le = LabelEncoder ()

label = le.fit_transform ( dataset [ 'Country' ])

dataset [ 'Country1' ] = label

dataset.drop ( "Country" , axis= 1 , inplace= True )

Für Fälle, in denen Sie mehr als ein Feature konvertieren müssen

dataset [[ 'Campaign' , 'Source Desc' , 'Source Type' , 'Company Name' , 'Gender' , 'Plan Type' , 'Activity' ]] = dataset [[ 'Campaign' , 'Source Desc' , 'Source Type' , 'Company Name' , 'Gender' , 'Plan Type' , 'Activity' ]] .apply ( le.fit_transform )

Schritt 5: Konvertieren Sie die Zahl in den Datentyp „Integer“.

Einige Werte sehen möglicherweise wie Zahlen aus, liegen aber möglicherweise tatsächlich im Datentyp „String“ vor. In diesem Fall müssen wir sie in einen ganzzahligen Datentyp konvertieren. Hier ist das Codebeispiel:

dataset [ 'Amount ($)' ] = dataset [ 'Amount ($)' ] .astype ( int )

Kostenlose Scraping-API und vollständiges Python-Skript zur Datenbereinigung

Wenn Sie an Tipps zur Datenvorverarbeitung mit Python und Scikit Learn interessiert sind, Bitte abonnieren Sie unseren Newsletter , indem Sie die Nachricht „DS + Full scripts and scraping API free token“ hinzufügen . Wir senden Ihnen das Skript zu, sobald das aktuelle App-Skript live ist.

Ich wünsche Ihnen viel Spaß beim Lesen von Tipps zur Datenvorverarbeitung mit Python und Scikit Learn. Wenn ja, unterstützen Sie uns bitte, indem Sie eine der unten aufgeführten Maßnahmen ergreifen, da dies unserem Kanal immer weiterhilft.

  • Unterstützen Sie unseren Kanal und spenden Sie über PayPal ( paypal.me/Easy2digital )
  • Abonnieren Sie meinen Kanal und aktivieren Sie die Benachrichtigungsglocke des Easy2Digital-Youtube-Kanals .
  • Folgen und liken Sie meine Easy2Digital-Facebook-Seite
  • Teilen Sie den Artikel in Ihrem sozialen Netzwerk mit dem Hashtag #easy2digital
  • Sie melden sich für unseren wöchentlichen Newsletter an, um die neuesten Artikel, Videos und Rabattcodes von Easy2Digital zu erhalten
  • Abonnieren Sie unsere monatliche Mitgliedschaft über Patreon, um exklusive Vorteile zu genießen ( www.patreon.com/louisludigital )

Kursempfehlung für Kurse zu Datenwissenschaft und maschinellem Lernen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert