我正在按照 this question 中的建议使用 scikit-learn 进行机器学习.令我惊讶的是,它似乎没有提供对其训练的实际模型的访问。例如,如果我创建一个 SVM、线性分类器甚至一个决策树,它似乎并没有为我提供一种方法来查看为实际训练模型选择的参数。
如果创建模型的部分目的是为了更清楚地了解它使用的功能(例如决策树),那么查看实际模型会很有用。如果想要使用 Python 训练模型并使用其他一些代码来实际实现模型,那么查看模型也是一个重要问题。
我是否遗漏了 scikit-learn 中的某些内容,或者是否有某种方法可以在 scikit-learn 中实现这一点?如果不是,什么是好的免费机器学习工作台,不一定是 python,其中的模型是透明可用的?
最佳答案
拟合的模型参数直接作为属性存储在模型实例上。这些拟合参数有一个特定的命名约定:它们都以尾随下划线结尾,而不是用户提供的构造函数参数(也称为超参数)。
拟合属性的类型取决于算法。例如,对于内核支持向量机,您将拥有支持向量、对偶系数和截距的数组,而对于随机森林和极端随机化的树,您将拥有一组二叉树(在内存中表示为连续的 numpy 数组,用于性能问题:结构数组表示法)。
有关更多详细信息,请参阅每个模型的文档字符串的属性部分,例如 SVC:
http://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC
对于基于树的模型,您还有一个辅助函数来生成学习树的 graphivz_export:
http://scikit-learn.org/stable/modules/tree.html#classification
要了解特征在森林模型中的重要性,您还应该查看 compute_importances
参数,例如,请参见以下示例:
关于python - Scikit-learn 模型参数不可用?如果是这样,还有什么 ML 工作台替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10936183/