【问题标题】:sklearn train_test_split confusionsklearn train_test_split 混淆
【发布时间】:2020-06-26 11:22:50
【问题描述】:

我在运行代码时遇到错误。可能的错误是什么?

X = [['Item_Identifier', 'Item_Weight', 'Item_Fat_Content', 'Item_Visibility',
       'Item_Type', 'Item_MRP', 'Outlet_Identifier',
       'Outlet_Establishment_Year', 'Outlet_Size', 'Outlet_Location_Type',
       'Outlet_Type']]
y = ['Item_Outlet_Sales']
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, train_size=0.80,test_size=0.20)

我得到的错误:

ValueError: With n_samples=1, test_size=0.2 and train_size=0.8, the resulting train set will be empty. Adjust any of the aforementioned parameters.

【问题讨论】:

  • X 真的像这些还是熊猫数据框的这些列名???

标签: machine-learning scikit-learn train-test-split


【解决方案1】:

我相信您正在处理pandas data frame,以及您的Xy,如以下行所示:

X = [['Item_Identifier', 'Item_Weight', 'Item_Fat_Content', 'Item_Visibility', 'Item_Type', 'Item_MRP', 'Outlet_Identifier', 'Outlet_Establishment_Year', 'Outlet_Size', 'Outlet_Location_Type', 'Outlet_Type']]
y = ['Item_Outlet_Sales']

只是作为真实列名索引的列表,它不包含有效的训练数据。如果您的数据框名称是df,由df = Dataframe(your_data) 行创建,您应该尝试:

X = df[['Item_Identifier', 'Item_Weight', 'Item_Fat_Content', 'Item_Visibility', 'Item_Type', 'Item_MRP', 'Outlet_Identifier', 'Outlet_Establishment_Year', 'Outlet_Size', 'Outlet_Location_Type', 'Outlet_Type']]
y = df[['Item_Outlet_Sales']]

用于提取Xy 数据。

【讨论】:

    【解决方案2】:

    您的 X 和 y 数据实际上是什么?他们真的是那些字符串吗?还是您使用文本作为占位符?

    您有一个列表列表作为 X 数据。这就是为什么代码将它解释为好像您只有一个样本。这就是为什么它告诉您 n_sample = 1 并且当您拆分训练数据时将是空的。删除 X 中的内括号,并为 X 提供一个类似于数组/列表的数据结构。然后它应该可以工作。

    【讨论】:

      猜你喜欢
      • 2017-04-15
      • 2019-10-15
      • 2021-09-29
      • 2017-09-29
      • 1970-01-01
      • 2015-12-10
      • 1970-01-01
      • 2021-10-25
      • 1970-01-01
      相关资源
      最近更新 更多