Читать книгу Praxiseinstieg Machine Learning mit Scikit-Learn, Keras und TensorFlow - Aurélien Géron - Страница 70

Experimentieren mit Kombinationen von Merkmalen

Оглавление

Hoffentlich hat Ihnen der vorige Abschnitt einige Ideen geliefert, mit denen Sie die Daten erkunden und Erkenntnisse gewinnen können. Sie haben ein paar Artefakte identifiziert, die Sie eventuell entfernen sollten, bevor Sie die Daten in einen Machine-Learning-Algorithmus einspeisen. Sie haben auch einige interessante Korrelationen entdeckt, insbesondere mit der Zielgröße. Sie haben außerdem bemerkt, dass einige Merkmale eine rechtsschiefe Verteilung aufweisen. Daher kann es nötig sein, diese zu transformieren (z.B. durch Logarithmieren). Natürlich unterscheidet sich der nötige Aufwand von Projekt zu Projekt beträchtlich, aber die Grundideen sind die gleichen.

Bevor Sie die Daten für Machine-Learning-Algorithmen vorbereiten, sollten wir als letzten Punkt noch einige Kombinationen von Merkmalen ausprobieren. Beispielsweise ist die Anzahl der Räume in einem Distrikt nicht besonders aussagekräftig, wenn Sie nicht wissen, wie viele Haushalte es dort gibt. Was Sie wirklich benötigen, ist die Anzahl der Räume pro Haushalt. In ähnlicher Weise ist die Gesamtzahl der Schlafzimmer nicht sehr nützlich, Sie sollten diese mit der Anzahl der Zimmer vergleichen. Auch die Bewohner pro Haushalt könnten eine interessante Kombination von Merkmalen hergeben. Erstellen wir diese neuen Merkmale:

housing["rooms_per_household"] = housing["total_rooms"]/housing["households"]

housing["bedrooms_per_room"] = housing["total_bedrooms"]/housing["total_rooms"]

housing["population_per_household"]=housing["population"]/housing["households"]

Nun betrachten wir die Korrelationsmatrix erneut:

>>> corr_matrix = housing.corr()

>>> corr_matrix["median_house_value"].sort_values(ascending=False)

median_house_value 1.000000

median_income 0.687160

rooms_per_household 0.146285

total_rooms 0.135097

housing_median_age 0.114110

households 0.064506

total_bedrooms 0.047689

population_per_household -0.021985

population -0.026920

longitude -0.047432

latitude -0.142724

bedrooms_per_room -0.259984

Name: median_house_value, dtype: float64

Nicht schlecht! Das neue Merkmal bedrooms_per_room korreliert wesentlich stärker mit dem mittleren Immobilienwert als die Anzahl der Zimmer oder Schlafzimmer. Anscheinend sind Häuser mit einem niedrigeren Verhältnis von Schlafzimmern zu Zimmern teurer. Die Anzahl Räume pro Haushalt ist ebenfalls aufschlussreicher als die Gesamtzahl Räume in einem Bezirk – natürlich sind Häuser umso teurer, je größer sie sind.

Dieser Teil der Untersuchung muss nicht extrem gründlich sein; es geht darum, an der richtigen Stelle zu beginnen und schnell einige Erkenntnisse zu sammeln, die für einen halbwegs guten Prototyp ausreichen. Der Prozess ist insgesamt iterativ: Sobald Ihr Prototyp läuft, können Sie dessen Ausgabe untersuchen, weitere Erkenntnisse daraus ziehen und zur Erkundung zurückkehren.

Praxiseinstieg Machine Learning mit Scikit-Learn, Keras und TensorFlow

Подняться наверх