如何使用NumPy新Polynomial API进行线性模型预测?
NumPy新Polynomial API预测问题修正方案
问题概述
使用NumPy旧版poly1d可正常完成线性拟合与预测,但切换到新numpy.polynomial.Polynomial API时,预测代码无法正常工作。
错误原因
Polynomial.fit()方法返回的已经是拟合完成的Polynomial实例,无需再用Polynomial(model)重新构造模型。错误的构造方式会导致模型无法正确接收输入并执行预测。
修正后的新版API代码
# linear model using numpy.polynomial (new api) from numpy.polynomial import Polynomial import numpy as np import matplotlib.pyplot as plt import pandas as pd # 直接从已创建的DataFrame中提取数据,避免重复转换 X = df['X'] y = df['y'] # 拟合趋势线 model = Polynomial.fit(X[:39].values, y[:39].values, 1) # 直接使用拟合好的model进行预测,无需重新构造Polynomial实例 predict_result = model(X[39:].values) print(predict_result)
额外说明
Polynomial.fit()会自动对输入数据做标准化(缩放+平移)处理,若需要获取原始坐标系下的多项式系数,可调用model.convert()方法:# 获取原始系数 original_coeffs = model.convert().coef print(original_coeffs)- 若要直接用原始系数创建模型,可使用
Polynomial(coeffs),但这种方式不会自动标准化数据,拟合稳定性可能不如Polynomial.fit()。
内容的提问来源于stack exchange,提问作者Tracyrenee
相关产品推荐
相关产品推荐

