Moim celem jest dopasowanie niektórych danych do funkcji wielomianowej i uzyskanie rzeczywistego równania, w tym dopasowanych wartości parametrów.Jak wyodrębnić równanie z dopasowania wielomianu?
Zaadaptowałem this example do moich danych, a wynik jest zgodny z oczekiwaniami.
Oto mój kod:
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import Ridge
from sklearn.preprocessing import PolynomialFeatures
from sklearn.pipeline import make_pipeline
x = np.array([0., 4., 9., 12., 16., 20., 24., 27.])
y = np.array([2.9,4.3,66.7,91.4,109.2,114.8,135.5,134.2])
x_plot = np.linspace(0, max(x), 100)
# create matrix versions of these arrays
X = x[:, np.newaxis]
X_plot = x_plot[:, np.newaxis]
plt.scatter(x, y, label="training points")
for degree in np.arange(3, 6, 1):
model = make_pipeline(PolynomialFeatures(degree), Ridge())
model.fit(X, y)
y_plot = model.predict(X_plot)
plt.plot(x_plot, y_plot, label="degree %d" % degree)
plt.legend(loc='lower left')
plt.show()
Jednak teraz nie wiem gdzie wyodrębnić rzeczywiste równania i wyposażone wartości parametrów dla poszczególnych napadów. Gdzie mam uzyskać dostęp do rzeczywistego dopasowanego równania?
Edycja:
Zmienna model
ma następujące cechy:
model.decision_function model.fit_transform model.inverse_transform model.predict model.predict_proba model.set_params model.transform
model.fit model.get_params model.named_steps model.predict_log_proba model.score model.steps
model.get_params
nie przechowuje pożądanych parametrów.
Świetnie, że działa. Niby ukryte, moim zdaniem. Podniosłem go i akceptuję później. – Cleb
Jest "ukryty", ponieważ scikit-learn to biblioteka uczenia maszynowego, a nie biblioteka modelowania statystycznego. Ogólnie, uczenie maszynowe koncentruje się na wynikach modeli, a nie na parametrach modeli. Zobacz [Modelowanie statystyczne: dwie kultury] (https://projecteuclid.org/euclid.ss/1009213726), aby uzyskać klasyczną dyskusję na temat tego podziału. – jakevdp
Dzięki za link! Czy używałbyś naukowego scikita do tego rodzaju oceny parametrów, czy też coś innego byłoby bardziej odpowiednie? Pytam, ponieważ chciałbym, na przykład, aby uniknąć ujemnych wartości i nie jestem pewien, jak łatwo byłoby użyć tego modułu. – Cleb