python - 如何将 input 赋予 python 中加载的 .pkl 模型

我有一个 Random Forest 模型,模型保存在 .pkl 文件中。我已经加载了 .pkl 模型,但现在我必须 input test data 并预测准确性。如何将input文件转为.pkl模型?

import pickle

def read_from_pickle(RF):
    with open(RF, 'rb') as file:
        try:
            while True:
                yield pickle.load(file)
        except EOFError:
            pass

这是我用来加载模型的代码 Next..how to input?

回答1

这个解决方案是随机森林回归我的模型有动态价格预测

import pandas as pd import numpy as np from sklearn import pipeline, preprocessing,metrics,model_selection,ensemble,linear_model 来自 sklearn_pandas import DataFrameMapper from sklearn.metrics import mean_squared_error

// 首先我们加载了这个库,然后我们加载了数据集和我们之后做的所有清理工作

data.to_csv("Pune_hpp.csv",index=False)

mapper = DataFrameMapper([ (['area_type','size','new_total_sqft','bath','balcony',], preprocessing.StandardScaler()), # (['area_type','size'],预处理。 OneHotEncoder())

],df_out=True)

// 听说我们为它创建了两个 pipeline 因为我们已经用 mse 和 rsme 方法比较了两个算法并加载了下面的算法

pipeline_obj_LR=pipeline.Pipeline([ ('mapper',mapper), ("model",linear_model.LinearRegression()) ])

pipeline_obj=pipeline.Pipeline([ ('mapper',mapper), ("model",ensemble.RandomForestRegressor()) ])

X=['area_type','size','new_total_sqft','bath','balcony'] // X with INPUT

Y=['价格'] // Y 作为输出

// 听到比较过程开始

pipeline_obj_LR.fit(data[X],data[Y]) // 这个逻辑回归

pipeline_obj.fit(data[X],data[Y]) // random forest

pipeline_obj.predict(data[X]) // 我们已经完成的一些预测

预测=pipeline_obj_LR.预测(数据[X])

//下面是比较的实际方法和最适合的算法

预测=pipeline_obj_LR.预测(数据[X])

火车和 test data 上的均方根误差

print('使用线性回归的 MSE: ', mean_squared_error(data[Y], predict)) print('使用 linear_regression 的 RMSE: ', mean_squared_error(data[Y], predict)**(0.5))

// 以上是lr

预测=pipeline_obj.predict(数据[X])

火车和 test data 上的均方根误差

print('使用随机森林回归的 MSE: ', mean_squared_error(data[Y], predict)) print('使用 randomforestregression 的 RMSE: ', mean_squared_error(data[Y], predict)**(0.5))

// 以上是针对 RFR 的,在我的文章中,我已经完成了与 joblib 相关的 random forest 原因,因为我拥有庞大的数据集,而且它很容易实现,而且它的代码行也非常少,你已经看到了,我还没有使用 pipeline_obj_LR 这就是我们在 pkl 文件中输入 value 的方式

导入作业库

joblib.dump(pipeline_obj,'dynamic_price_pred.pkl')

modelReload=joblib.load('dynamic_price_pred.pkl')

相似文章