sklearn错误:“X和y的形状不兼容。”

2024-04-16 19:46:42 发布

您现在位置:Python中文网/ 问答频道 /正文

scikit新手学习。我试图用逻辑回归来拟合一些虚构的数据,但是我得到了一个错误“X和y的形状不相容。X有1个样本,y有6个样本。”

import pandas as pd
from sklearn.linear_model import LogisticRegression

# Create a sample dataframe
data = [['Age', 'ZepplinFan'], [13 , 0], [40, 1], [25, 0], [55, 0], [51, 1], [58, 1]]
columns=data.pop(0)
df = pd.DataFrame(data=data, columns=columns)

# Fit Logistic Regression
lr = LogisticRegression()
lr.fit(X=df.Age.values, y = df.ZepplinFan)

This post表示我需要改变形状数据框年龄值至(n_samples,1)。我该怎么做?在


Tags: columns数据importdfagedatascikitpd
1条回答
网友
1楼 · 发布于 2024-04-16 19:46:42

形状很重要是的。一种方法是传递列

In [24]: lr.fit(df[['Age']], df['ZepplinFan'])
Out[24]:
LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,
          intercept_scaling=1, penalty='l2', random_state=None, tol=0.0001)

如果要显式传递值,则可以

^{pr2}$

或者您可以newaxis对您现有的语法

In [26]: lr.fit(df.Age.values[:,np.newaxis], df.ZepplinFan.values)
Out[26]:
LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,
          intercept_scaling=1, penalty='l2', random_state=None, tol=0.0001)

相关问题 更多 >