TypeError:'数据参数不能是迭代器......'

时间:2018-06-08 02:29:59

标签: scikit-learn jupyter-notebook python-3.6 logistic-regression transpose

我试图使用zip函数将列名称放在一起,并使用np.transpose函数将我创建的log_model的系数汇总在一起。

我的代码:

# Create LogisticRegression model object
log_model = LogisticRegression()

# Fit our data into that object
log_model.fit(X,Y)

# Check your accuracy
log_model.score(X,Y)

这段代码工作正常,因为我能够检查模型的准确性。 但是,以下代码是我收到错误的地方。

错误的代码:

coeff_df = DataFrame(zip(X.columns,np.transpose(log_model.coef_)))

错误讯息:

TypeError                                 Traceback (most recent call last)
<ipython-input-147-a4e0ad234518> in <module>()
      1 # Use zip to bring the column names and the np.transpose function to bring together the coefficients from the model
----> 2 coeff_df = DataFrame(zip(X.columns,np.transpose(log_model.coef_)))

~/anaconda3/lib/python3.6/site-packages/pandas/core/frame.py in __init__(self, data, index, columns, dtype, copy)
    387                 mgr = self._init_dict({}, index, columns, dtype=dtype)
    388         elif isinstance(data, collections.Iterator):
--> 389             raise TypeError("data argument can't be an iterator")
    390         else:
    391             try:

TypeError: data argument can't be an iterator

我做错了什么?对不起,新手在这里。我正在使用Python教程跟随Udemy数据可视化。我的讲师正在使用Python 2,但我已经能够使用Python 3进行管理,只是制作和研究转换以确保我的代码仍然有效。任何建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

对于二进制分类,仅使用一个线性模型。在多标签分类的情况下,每个类将有一个线性模型。假设您的X是pd.DataFrame,您可以按以下步骤操作:

output = pd.DataFrame(my_model.coef_, columns=X.columns)

行表示不同类的线性模型,列表示系数。