创建一个加载模型、获取数据向量并进行预测的函数

发布于 2025-01-20 02:59:49 字数 1366 浏览 2 评论 0原文

我正在尝试在 Boston Housing 数据集上训练回归模型,并将模型保存到磁盘,然后创建 Title 函数。

下面的代码正在工作

import pandas as pd 
import numpy as np
import os
import pickle
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
from joblib import dump, load 

boston = load_boston()
boston_df = pd.DataFrame(boston.data, columns = boston.feature_names)
y = pd.DataFrame(boston.target)
x_train, x_test, y_train, y_test = train_test_split(boston_df, y, test_size = 0.2, random_state=17)
model = LinearRegression()
model.fit(x_train, y_train)
y_predict = model.predict(x_test)
mse = mean_squared_error(y_test, y_predict)

with open('model.pkl', 'wb') as file:
    pickle.dump(model, file)
del model
with open('model.pkl', 'rb') as file:
    lin_model = pickle.load(file)

但是当我添加它时它应该工作

def predicting(x):
    x = pd.DataFrame(x)
    with open('model.pkl', 'rb') as file:
        lin_model = pickle.load(file)
        pred = lin_model.predict(x)
        print(pred)

但我不知道“x”需要什么结构才能使这个功能工作!

x = [1,2,4,5,6,3,5,6,7,3,5,6,4]
predicting(x)

像上面一样,它说 ValueError: matmul: 输入操作数 1 在其核心维度 0 中不匹配,具有 gufunc 签名 (n?,k),(k,m?)->(n?,m?) (尺寸 13 与 1) 不同

请帮忙?

I'm trying to train a regression model on the Boston Housing dataset and save the model to disk and then make the Title function.

Below code's is working

import pandas as pd 
import numpy as np
import os
import pickle
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
from joblib import dump, load 

boston = load_boston()
boston_df = pd.DataFrame(boston.data, columns = boston.feature_names)
y = pd.DataFrame(boston.target)
x_train, x_test, y_train, y_test = train_test_split(boston_df, y, test_size = 0.2, random_state=17)
model = LinearRegression()
model.fit(x_train, y_train)
y_predict = model.predict(x_test)
mse = mean_squared_error(y_test, y_predict)

with open('model.pkl', 'wb') as file:
    pickle.dump(model, file)
del model
with open('model.pkl', 'rb') as file:
    lin_model = pickle.load(file)

But when I add it's supossed to work

def predicting(x):
    x = pd.DataFrame(x)
    with open('model.pkl', 'rb') as file:
        lin_model = pickle.load(file)
        pred = lin_model.predict(x)
        print(pred)

But I don't know what structure does 'x' need for this function to work!

x = [1,2,4,5,6,3,5,6,7,3,5,6,4]
predicting(x)

Like above it says ValueError: matmul: Input operand 1 has a mismatch in its core dimension 0, with gufunc signature (n?,k),(k,m?)->(n?,m?) (size 13 is different from 1)

Please help?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

相守太难 2025-01-27 02:59:49
import pandas as pd 
import numpy as np
import os
import pickle
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
from joblib import dump, load 
from sklearn.datasets import make_blobs

boston = load_boston()
boston_df = pd.DataFrame(boston.data, columns = boston.feature_names)
y = pd.DataFrame(boston.target)
x_train, x_test, y_train, y_test = train_test_split(boston_df, y, test_size = 0.2, random_state=17)
model = LinearRegression()
model.fit(x_train, y_train)
y_predict = model.predict(x_test)
mse = mean_squared_error(y_test, y_predict)

with open('model.pkl', 'wb') as file:
    pickle.dump(model, file)
del model

x, _ = make_blobs(n_samples=3, centers=2, n_features=13, random_state=1)
def preficting(x):
    with open('model.pkl', 'rb') as file:
        lin_model = pickle.load(file)
        ynew = lin_model.predict(x)
        for i in range(len(x)):
            print("X=%s, Predicted=%s" % (x[i], ynew[i]))
preficting(x)

没有最终的印刷品,但我看到了它并认为它很漂亮,但这就是我需要的! :)

import pandas as pd 
import numpy as np
import os
import pickle
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
from joblib import dump, load 
from sklearn.datasets import make_blobs

boston = load_boston()
boston_df = pd.DataFrame(boston.data, columns = boston.feature_names)
y = pd.DataFrame(boston.target)
x_train, x_test, y_train, y_test = train_test_split(boston_df, y, test_size = 0.2, random_state=17)
model = LinearRegression()
model.fit(x_train, y_train)
y_predict = model.predict(x_test)
mse = mean_squared_error(y_test, y_predict)

with open('model.pkl', 'wb') as file:
    pickle.dump(model, file)
del model

x, _ = make_blobs(n_samples=3, centers=2, n_features=13, random_state=1)
def preficting(x):
    with open('model.pkl', 'rb') as file:
        lin_model = pickle.load(file)
        ynew = lin_model.predict(x)
        for i in range(len(x)):
            print("X=%s, Predicted=%s" % (x[i], ynew[i]))
preficting(x)

Without the final print but I saw it and thought that was pretty, but here's what I needed! :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文