Maschinelles Lernen an der Stanford University, dem beliebtesten Kurs auf der Online-Lernplattform Coursera. Der Ausbilder ist Dr. Andrew Ng. Die Klasse besteht aus Vorlesungen und Programmieraufgaben, und Octave oder Matlab wird als Sprache für die Programmieraufgaben angegeben.
Wir werden diese Programmieraufgabe ruhig mit Python implementieren. Jedoch,
Die Richtlinie.
In ex1, der ersten Aufgabe, werden wir eine lineare Regression durchführen. Beim Management von Restaurantketten wird die Höhe des Gewinns bei der Eröffnung eines neuen Geschäfts auf der Grundlage des Datensatzes vorhergesagt, der die Bevölkerung der Stadt, die in der Vergangenheit eröffnet wurde, und die Höhe des Gewinns des Restaurants miteinander verbindet.
Klicken Sie hier für den Code.
ex1.py
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn import linear_model
#Daten gelesen
data = pd.read_csv("ex1data1.txt", header=None)
plt.scatter(data[0], data[1], marker='x', c='r')
plt.xlabel("Population of city in 10,000s")
plt.ylabel("Profit in $10,000s")
X = np.array([data[0]]).T
y = np.array(data[1])
model = linear_model.LinearRegression()
model.fit(X, y)
px = np.arange(X.min(),X.max(),.01)[:,np.newaxis]
py = model.predict(px)
plt.plot(px, py, color="blue", linewidth=3)
plt.show()
Das resultierende Diagramm wird wie folgt ausgegeben:
Das lineare Regressionsmodell verwendet die Klasse sklearn.linear_model.LinearRegression () von scikit-learn. Erstellen Sie zunächst eine Instanz und trainieren Sie mit model.fit (X, y)
. Der Abschnitt und die Neigung, die die Lernergebnisse sind, können als "model.intercept_" bzw. "model.coef_" extrahiert werden. Verwenden Sie "model.predict (X)", um mithilfe eines Modells eine Vorhersage für einen neuen "X" -Wert zu treffen.
Im Gegensatz zu Matlab / Octave unterscheidet Python nicht zwischen eindimensionalen vertikalen und horizontalen Vektoren. Um einen vertikalen Vektor explizit zu erstellen
np.array([[1,2,3,4,5]]).T
Oder
np.array([1,2,3,4,5])[:,np.newaxis)]
Und. -> Referenzartikel
Recommended Posts