Ich werde darüber schreiben, wie man CSV-Daten in Python liest und eine lineare und nichtlineare Regression durchführt. Python ver ist 3.7.3. In Windows 10-Umgebung.
Der Code ist unten.
◆ Lesen Sie CSV-Daten und führen Sie eine lineare einfache Regressionsanalyse durch
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
#Variable
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
#ys-Achse CSV-Daten gelesen
data = pd.read_csv('cp.csv')
y = np.array(data)#Anordnung
y = y.reshape(-1,)#Dimensionsänderung(2 zu 1 Dimension)
#Erstellen Sie die x-Achse des Datums
x = pd.date_range('2019-08-30 00:00:00', periods=16, freq='d')
x1=np.arange(16)
x2 = [[x1] for x1 in x1]
#Lineare einfache Regression
from sklearn import linear_model
clf = linear_model.LinearRegression()
clf.fit(x2,y) #Erstellen Sie ein Vorhersagemodell
print("Regressionskoeffizienten= ", clf.coef_)
print("Sektion= ", clf.intercept_)
print("Entscheidungskoeffizient= ", clf.score(x2,y))
#Diagrammerstellung
ax.plot(x2,y,'b')
ax.plot(x2, clf.predict(x2),'k')
#Geben Sie das Diagrammformat an
plt.xlabel("Days elapsed")#Beschriftung der horizontalen Achse
plt.ylabel("plice")#Vertikales Etikett
plt.grid(True)#Skalenanzeige
plt.tight_layout()#Alle Grundstücke in einer Box
plt.show()
◆ Lesen Sie CSV-Daten und führen Sie eine nichtlineare einfache Regressionsanalyse durch
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
#Variable
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
#ys-Achse CSV-Daten gelesen
data = pd.read_csv('cp.csv')
y = np.array(data)#Anordnung
y = y.reshape(-1,)#Dimensionsänderung(2 zu 1 Dimension)
#Erstellen Sie die x-Achse des Datums
x = pd.date_range('2019-08-30 00:00:00', periods=16, freq='d')
#Nichtlineare Regressionsreihenfolge
x1=np.arange(16)
fit = np.polyfit(x1,y,5)
y2 = np.poly1d(fit)(x1)
#Entscheidungskoeffizient
from sklearn.metrics import r2_score
print(r2_score(y,y2))
#Prognose
x_30 = np.poly1d(fit)(30)
print(x_30)
#Diagrammerstellung
ax.plot(x,y,'bo')
ax.plot(x,y2,'--k')
#Geben Sie das Diagrammformat an
days = mdates.DayLocator()
daysFmt = mdates.DateFormatter('%m-%d')
ax.xaxis.set_major_locator(days)
ax.xaxis.set_major_formatter(daysFmt)
plt.xlabel("date")#Beschriftung der horizontalen Achse
plt.ylabel("price")#Vertikales Etikett
plt.grid(True)#Skalenanzeige
plt.tight_layout()#Alle Grundstücke in einer Box
plt.show()
Klicken Sie hier, um eine technische Erklärung der Regressionsanalyse und eine detaillierte Erläuterung der einzelnen Codes (´ ´ ω ・ `) ☟☟☟ zu erhalten https://kgrneer.com/python-numpy-scikit-kaiki/
Ich studiere auch multiple Regression.
Recommended Posts