【发布时间】:2019-04-17 16:24:10
【问题描述】:
我正在尝试了解序列化 scikit-learn/keras 拟合模型(使用 pickle/joblib 等)的安全隐患。
具体来说,如果我处理我不想公开的数据,是否有人可以对模型拟合的数据进行逆向工程?或者数据只是算法更新算法相关系数/权重的一种方式? (如果我针对“这部电影很棒”训练模型并将其存储为 foo.pkl 文件,我是否也能够加载 foo.pkl 并说它接受过“这部电影很棒”的训练,如果我有的话访问的是pkl文件而不是数据)
【问题讨论】:
-
需要更多细节。取决于具体的算法。在大多数情况下,除了可以轻松访问的学习系数(权重、参数等)之外,只有一些估计器会保存部分或全部数据。一些估计器可能会存储一些中心趋势(均值、众数或类似),这些中心趋势可再次用于获取有关数据的概念。
-
也依赖于预处理。您需要将示例中的字符串转换为一些数字,这在训练和测试之间应该是一致的。因此,您还必须发送预处理算法,这肯定会存储将要进入模型的特征的映射。
标签: python machine-learning scikit-learn pickle joblib