我正在嘗試在一個簡單的人工資料集上運行內核嶺回歸。當我運行代碼時,我得到兩個圖。第一個是線性回歸擬合,看起來很正常。但是,內核一非常不穩定。這是預期的行為,還是我沒有正確呼叫函式?
第一個plt.show():

第二個plt.show():

from sklearn.kernel_ridge import KernelRidge
from sklearn.linear_model import LinearRegression
import numpy as np
import matplotlib.pyplot as plt
w = 5
x = np.random.randn(10, 1)
x_to_draw_line = np.random.randn(1000, 1)
y = w * x
lr = LinearRegression()
lr.fit(x, y)
lr_preds = lr.predict(x_to_draw_line)
plt.figure()
plt.plot(x_to_draw_line, lr_preds, color="C1")
plt.scatter(x, y, color="C0")
plt.show()
krr = KernelRidge(kernel="polynomial")
krr.fit(x, y)
krr_preds = krr.predict(x_to_draw_line)
plt.figure()
plt.plot(x_to_draw_line, krr_preds, color="C1")
plt.scatter(x, y, color="C0")
plt.show()
uj5u.com熱心網友回復:
線圖看起來很混亂,因為 matplotlib 按照它們在輸入陣列中出現的順序在每對點之間繪制了一條連接線。
解決方案是對隨機生成的 x 值陣列進行排序,以生成和繪制預測:
x_to_draw_line = np.random.randn(1000, 1).sort()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/530837.html
上一篇:索引缺陷,頂點顏色改變
