Python 列车和测试集拟合时出错,列车测试分割法
我正试图用train_test_split评估我的模型。我定义了以下函数,以根据函数中的输入在表(顶列)上创建输出数组:Python 列车和测试集拟合时出错,列车测试分割法,python,machine-learning,scikit-learn,valueerror,train-test-split,Python,Machine Learning,Scikit Learn,Valueerror,Train Test Split,我正试图用train_test_split评估我的模型。我定义了以下函数,以根据函数中的输入在表(顶列)上创建输出数组: def top_sh(num): ###Get the top(num) in Shanghai data and arrange ####input and output variables accordingly #Add column to be output value, either zero or one #shanghai =
def top_sh(num):
###Get the top(num) in Shanghai data and arrange
####input and output variables accordingly
#Add column to be output value, either zero or one
#shanghai = shanghai_cp.copy()
if 'top' in shanghai.columns:
shanghai.drop(columns = shanghai.columns[-1],inplace = True)
shanghai['top'] = shanghai['world_rank'].apply(lambda x: 1 if x<= num else 0)
out = print('*****************'+ '\n' + 'Output array: Top'+ str(num)+ '\n' + 'Disregarding in Analysis: World rank')
#call = print(shanghai.head(15))
return out
我运行以下代码:
top_sh(50)
shanghai.head()
X.shape
Y
Y.shape
train_test('shanghai',0.3,7)
```
X.shape = (768, 8)
Y.shape = (768, )
I get the following error on train_test function, specifically on model.fit line:
> ValueError: bad input shape (150, 6)
问题很可能是由于您传递给
fit
的内容引起的。它期望X值作为预测值,Y值作为预测值,因此您在这一行中所做的是不正确的:
model.fit(X_Train,X_Test)
相反,你应该试着通过Y\u列车
:
model.fit(X_train,Y_train)
您不想将
X\u列车
与Y\u列车
配合使用吗?而不是model.fit(X_-Train,X_-Test)
。这是否解决了你的问题,请让我知道。是的,它确实解决了我的问题。谢谢你的更正。你能给我一些关于这个部分用于什么的见解吗?ValueError:这个解算器需要数据中至少两个类的样本,但数据只包含一个类:0我在下一步中得到这个错误,我使用KFold来查找精度。我导入了KFold和逻辑回归我使用的数据是sameI将在一分钟内检查,你能用KFold部分编辑你的问题吗?
model.fit(X_train,Y_train)