天天看點

Expected 2D array, got scalar array instead: array=10.

問題:

進行最小二乘法通過給定值預測結果時

 model.predict(10)  出現參數類型錯誤

Expected 2D array, got scalar array instead: array=10.

解決方法:

注釋掉上面黃色背景的一行

使用下面這種格式進行預測

import numpy as np

new_x = 8
new_x = np.array(new_x).reshape(1, -1)
pre_y = model.predict(new_x)
print(f"預測結果是:{pre_y}")
           

使用最小二乘法求線性關系中未知系數的執行個體

源代碼如下:

#使用最小二乘法求線性關系中的未知系數


#導入解析excel資料子產品
from pyexpat import features
import pandas as pd

#導入資料繪圖子產品
import matplotlib.pyplot as plt

#導入支援求解最小二乘法的子產品
from sklearn.linear_model import LinearRegression

#導入數字處理集
import numpy as np

data = pd.read_excel("./商場-人流量-銷售額.xlsx")
print(data)
# data

data.plot.scatter(x='日均人流量(千人)', y='日均銷售額(千元)')
plt.show()
#做散點圖

features = data['日均人流量(千人)'].values.reshape(-1,1)
target = data['日均銷售額(千元)']

regression = LinearRegression()                 #線性回歸
model = regression.fit(features,target)         #對資料進行線性拟合

# model.intercept_
print(f"截距b是:{model.intercept_}")
print(f"系數a是:{model.coef_}")
# print(model.predict(10))
#輸入參數類型錯誤,提示array=10,二維數組,一維數組

new_x = 8
new_x = np.array(new_x).reshape(1, -1)
pre_y = model.predict(new_x)
print(f"預測結果是:{pre_y}")



           

源資料

格式為 xlsx,命名為:商場-人流量-銷售額

Expected 2D array, got scalar array instead: array=10.