【问题标题】:Logisitc Regression using SciKit Learn使用 SciKit Learn 进行逻辑回归
【发布时间】:2016-06-17 17:14:42
【问题描述】:

有人可以帮我调试这段代码吗?谢谢!

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
from sklearn import linear_model
data = pd.read_csv('Mower.csv')
data = data.values
y = data[:,2]
x = data[:,:2]
y_train = y[:int(0.3*len(y))]
x_train = x[:int(0.3*len(y)),:]
y_validate = y[int(0.3*len((y))):]
x_validate = x[int(0.3*len((y))):,:]
clf = linear_model.LogisticRegression
clf.fit(x_train,y_train)
y_hat = clf.predict(x_validate)

给我以下错误:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-77-a0a54feba3ef> in <module>()
      1 clf = linear_model.LogisticRegression
----> 2 clf.fit(x_train,y_train)
      3 y_hat = clf.predict(x_validate)

TypeError: unbound method fit() must be called with LogisticRegression instance as first argument (got ndarray instance instead)

【问题讨论】:

    标签: python scikit-learn regression


    【解决方案1】:

    代替

    clf = linear_model.LogisticRegression
    

    你想要的

    clf = linear_model.LogisticRegression()
    

    在第一种情况下,clf 设置为等于 linear_model.LogisticRegression,但在第二种情况下,它设置为等于 类的实例 linear_model.LogisticRegression.

    当您调用clf.fit(...) 时,它期望linear_model.LogisticRegression 类的实例作为第一个参数。如果clf 是一个类,那么它不会自动传递给第一个参数,因此fit 方法会找到x_train,而是类ndarray 的一个实例。然后它会抱怨,因为它期待的是 linear_model.LogisticRegression 类的实例。

    原来如此

    unbound method fit() must be called with LogisticRegression instance as first argument (got ndarray instance instead)
    

    想说。

    【讨论】:

      猜你喜欢
      • 2018-01-14
      • 2016-02-21
      • 2017-03-31
      • 2015-11-11
      • 2018-05-19
      • 2018-03-01
      • 2016-07-31
      • 2012-06-27
      • 2018-09-23
      相关资源
      最近更新 更多