TUNGchuan
2019-09-02 17:37
采纳率: 66.7%
浏览 2.5k

机器学习中怎么使用保存的模型进行预测

我使用一个文档中的数据训练了岭回归模型并保存,想通过这个模型来预测另一个文档中的数据(两个文档中的数据只是数量不一样)

预测的文档中有2W+条数据,但是预测结果只有6000+条。

请问各位大神怎么才能使预测结果按每条数据的顺序全部得出来。

本人完全小白,论文想做个机器学习的东西...求各位大神指导

from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
import pandas as pd
import joblib as jb

def mylinear():
    """
    岭回归预测TOC
    :return: None
    """
    # 获取数据
    data = pd.read_csv("./NH25-4.csv")
    # 删除部分列
    data = data.drop(["E_HORZ", "E_VERT", "PR_HORZ", "PR_VERT", "Brittle_Horz%", "Brittle_Vert%", "POR", "DEPTH"],
                     axis=1)

    # 取出特征值和目标值
    y = data["TOC"]
    x = data.drop(["TOC"], axis=1)

    # 分割数据集到训练集和测试集
    x_train, x_test, y_train, y_test = train_test_split(x, y)

    # 标准化
    std_x = StandardScaler()

    x_train = std_x.fit_transform(x_train)
    x_test = std_x.transform(x_test)

    # 目标值
    std_y = StandardScaler()

    y_train = std_y.fit_transform(y_train.values.reshape(-1, 1))
    y_test = std_y.transform(y_test.values.reshape(-1, 1))

    # 加载模型
    model = jb.load("./test_Ridge.pkl")
    y_predict = std_y.inverse_transform(model.predict(x_test))

    print("保存的模型预测的结果:", y_predict)

if __name__ == "__main__":
    mylinear()
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • 繁华三千东流水 2019-09-02 18:21
    已采纳

    分割数据集到训练集和测试集
    x_train, x_test, y_train, y_test = train_test_split(x, y)
    你加载模型直接预测 不需要对数据进行再次切分 因为你切分为了训练集和测试集,所有测试集只有6000+数据。 你对数据处理的时候直接对整体进行处理
    然后整体预测就可以了

    点赞 评论

相关推荐 更多相似问题