我在玩python,想用matplotlib繪製二次線性迴歸。問題是,我的陰謀最終被很多連接線/點,而不是僅僅的一個功能:用matplotlib繪製二次函數/模型
通常我會覺得這是與行的問題VS的列向量。但是,當我轉置時,似乎沒有任何改變。
這裏是我的代碼:
from sklearn import datasets, linear_model
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# Load diabetes dataset JSON
dsDiabetes = datasets.load_diabetes()
# Create feature- and outcome vectors
lin_train = np.array(dsDiabetes.data[:, np.newaxis, 2])
quad_train = np.concatenate((lin_train, lin_train**2), axis=1)
outcome = np.array(dsDiabetes.target)
# Create regression objects
lin_model = linear_model.LinearRegression()
quad_model = linear_model.LinearRegression()
# lin_train model
lin_model.fit(lin_train, outcome)
quad_model.fit(quad_train, outcome)
# Plot
plt.style.use('fivethirtyeight')
plt.scatter(lin_train, outcome, color='black')
# plt.plot(lin_train, quad_model.predict(quad_train))
# plt.plot(lin_train, lin_model.predict(lin_train), color='blue', linewidth=1)
plt.plot(lin_train, quad_model.predict(quad_train), color='red', linewidth=1)
plt.show()
我缺少什麼?
當然!謝謝juanpa。 一個簡單的問題:你爲什麼要重塑?我測試過了,這是必需的。 (442L,1L)和 (442L,)之間的直觀區別是什麼? – mfvas
@mfvas不客氣!如果這對您有幫助,您可以提出答案,如果您選擇接受,請使用複選標記。 –