【发布时间】:2012-12-13 21:11:32
【问题描述】:
我已经使用 fit 方法训练了一个估计器,称为 clf,并将模型保存到磁盘。下次运行程序,会从磁盘加载clf。
我的问题是:
- 如何预测保存在磁盘上的样本?我的意思是,如何加载和预测?
- 预测后如何获取样本标签而不是标签整数?
【问题讨论】:
标签: machine-learning scikit-learn
我已经使用 fit 方法训练了一个估计器,称为 clf,并将模型保存到磁盘。下次运行程序,会从磁盘加载clf。
我的问题是:
【问题讨论】:
标签: machine-learning scikit-learn
如何预测保存在磁盘上的样本?我的意思是,如何加载和预测?
您必须对新样本使用与传递给fit 方法的样本相同的数组表示。如果要预测单个样本,输入必须是形状为(1, n_features) 的二维numpy 数组。
在 HDD 上读取原始文件并将其转换为适合分类器的 numpy 数组表示的方式是一个特定领域的问题:这取决于您是否尝试对文本文件、jpeg 文件、视频文件中的帧进行分类,数据库中的行,syslog 监控服务的日志行...
预测后如何获取样本标签而不是标签整数?
只需保留标签名称列表,并确保在拟合时用作目标值的整数在[0, n_classes) 范围内。例如['spam', 'ham'],如果你有[0, 1]范围内的预测,那么你可以这样做:
new_samples = # 2D array with shape (n_samples, n_features)
label_names = ['ham', 'spam']
predictions = [label_names[pred] for pred in clf.predict(new_samples)]
【讨论】:
new_samples = [open(f, 'wb').read().decode('utf-8') for f in filenames]
open(f, 'rb')而不是open(f, 'wb')。