在sklearn.datasets中dump_svmlight_file()方法中的zero_based参数有什么影响?

时间:2015-05-12 10:21:24

标签: scikit-learn

我正在使用sklearn进行一些分类实验。在实验过程中,我构建了csr_matrix对象来存储我的数据,并在这些对象上使用LogisticRegression分类器并获得一些结果。 我使用dump_svmlight_file和使用joblib的模型转储数据。 但是当我使用load_svmlight_file和模型加载数据时,我获得了(非常)不同的结果。

我意识到如果我将数据设置为零,将零参数设置为False,我会检索原始结果。这个参数究竟有什么影响?是否通常会有不同的结果修改此参数的值?

1 个答案:

答案 0 :(得分:0)

The docs are pretty explicit:

zero_based : boolean or “auto”, optional, default “auto”

  

f中的列索引是从零开始(True)还是从一开始(False)。如果列索引是从一开始的,则它们将转换为从零开始以匹配Python / NumPy约定。如果设置为“auto”,则应用启发式检查以从文件内容中确定。两种文件都“在野外”出现,但遗憾的是它们不能自我识别。使用“auto”或True应始终是安全的。

但是,你的观察结果似乎很奇怪。如果您使用zero_based=False进行转储并使用zero_based='auto'加载,则启发式应该能够检测到正确的格式。 此外,如果检测到错误的格式,则功能的数量会发生变化,因此分类器会出错。