在保存多项式模型时,可以使用pickle库将模型保存为二进制文件,从而方便地加载和使用模型。但是,多项式的次数无法直接保存在模型中,因此需要在保存和加载模型时手动记录多项式的次数。
下面是一个示例代码,演示了如何保存和加载多项式模型,同时手动记录多项式的次数:
import pickle
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression
# 假设有一个训练好的多项式模型
poly_model = PolynomialFeatures(degree=2)
X = [[0], [1], [2], [3], [4]]
y = [4, 2, 1, 5, 3]
X_poly = poly_model.fit_transform(X)
model = LinearRegression()
model.fit(X_poly, y)
# 保存模型和多项式次数
with open('poly_model.pkl', 'wb') as f:
pickle.dump(model, f)
pickle.dump(poly_model.degree, f)
# 加载模型和多项式次数
with open('poly_model.pkl', 'rb') as f:
loaded_model = pickle.load(f)
poly_degree = pickle.load(f)
# 使用加载的模型进行预测
X_test = [[5], [6]]
X_test_poly = PolynomialFeatures(degree=poly_degree).fit_transform(X_test)
y_pred = loaded_model.predict(X_test_poly)
print(y_pred)
在上述代码中,首先训练了一个多项式模型,并将其保存到文件'poly_model.pkl'中。同时,将多项式的次数poly_model.degree
也保存到文件中。然后,通过pickle.load()
函数加载模型和多项式次数。最后,使用加载的模型对新的数据进行预测。
请注意,在加载模型后,需要手动创建一个新的多项式模型(PolynomialFeatures
)并将多项式的次数设置为加载的值,以便正确地对新的数据进行预测。