【问题标题】:NameError: name 'Ridge' is not definedNameError:名称“山脊”未定义
【发布时间】:2016-06-24 02:24:13
【问题描述】:

我是学习机器学习的初学者。我正在使用 IDLE spyder 和这个 Python 版本:

Python 3.4.3 |Anaconda 2.3.0 (64-bit)| (default, Mar  6 2015, 12:06:10) [MSC v.1600 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.

我遇到以下错误:

NameError: name 'Ridge' is not defined 

你能帮我找出这段代码有什么问题吗?这个问题与 Python 版本有关吗?

from sklearn import linear_model
clf = linear_model.Ridge(alpha=.5)
clf.fit ([[0, 0], [0, 0], [1, 1]], [0, .1, 1]) 
Ridge(alpha=0.5, copy_X=True, fit_intercept=True, max_iter=None,
      normalize=False, random_state=None, solver='auto', tol=0.001)
clf.coef_

提前致谢

【问题讨论】:

  • 你能看出调用 Ridge 的两种方式之间的区别吗?
  • 你安装了吗? pip install scikit-learn ?
  • 我正在使用 spyder IDLE 并通过它运行 Anaconda。 scikit-learn 已预先安装。这是版本
  • Python 3.4.3 |Anaconda 2.3.0(64 位)| (默认,2015 年 3 月 6 日,12:06:10)[MSC v.1600 64 位 (AMD64)] 在 win32 上键入“帮助”、“版权”、“信用”或“许可”以获取更多信息。
  • 错误信息告诉你错误:Ridge 未定义。它是linear_model 的一个属性,但它没有在全局范围内定义。就像使用clf 一样,您需要使用linear_model.Ridge

标签: python machine-learning scikit-learn anaconda spyder


【解决方案1】:

请看下面两个代码sn-ps的区别,第一个正确,第二个产生错误:

第一

from sklearn import linear_model
clf = linear_model.Ridge (alpha = .5)
clf.fit([[0, 0], [0, 0], [1, 1]], [0, .1, 1])
clf.coef_
array([ 0.34545455,  0.34545455])

第二:

from sklearn import linear_model
clf = linear_model.Ridge (alpha = .5)
clf.fit ([[0, 0], [0, 0], [1, 1]], [0, .1, 1]) 
Ridge(alpha=0.5, copy_X=True, fit_intercept=True, max_iter=None,
  normalize=False, random_state=None, solver='auto', tol=0.001)
clf.coef_
NameError: name 'Ridge' is not defined

编辑

你应该在 Python 解释器中逐行运行第一个代码 sn-ps 中的行(或在 Ipython notebook 中的整个单元格中),你会得到该行

Ridge(alpha=0.5, copy_X=True, fit_intercept=True, max_iter=None,
   normalize=False, random_state=None, solver='auto', tol=0.001)

在您执行clf.fit([[0, 0], [0, 0], [1, 1]], [0, .1, 1]) 语句后的输出中。

【讨论】:

  • 谢谢。我跑了这个。虽然我现在没有收到错误,但我没有注意到你从 sklearn import linear_model clf = linear_model.Ridge (alpha = .5) clf.fit([[0, 0], [0, 0], [1, 1]], [0, .1, 1])
  • @Jossi,尝试从第一个 sn-p 逐行复制和运行行并注意输出...
猜你喜欢
  • 1970-01-01
  • 2018-01-24
  • 1970-01-01
  • 2021-04-15
  • 2019-01-26
  • 2021-10-05
  • 2017-08-16
  • 2019-08-18
相关资源
最近更新 更多