【问题标题】:scikit learn train_test_split function not working as expectedscikit learn train_test_split 函数未按预期工作
【发布时间】:2018-12-06 02:32:18
【问题描述】:

我正在使用训练测试拆分功能来分离训练和测试数据,但函数为分离的训练测试数据分配了错误的标签。它不是从预期行分配标签,而是从预期行的第二行分配标签。请让我知道我哪里出错了?

data = pd.read_csv('To_Tanaji.csv')
print(data.columns)
print(data.shape)
#plt.hist(train["DiffCorrectLatRawLat"])
#test = pd.read_csv('test.csv')

#np.polyfit(data['DistanceRaw2GPS'], data['DistanceCorrected2GPS'], 2)
Output= data.DistanceCorrected2GPS
Input=data.DistanceRaw2GPS

X_train, X_test, y_train, y_test = train_test_split(Input, Output, test_size=0.2)

【问题讨论】:

    标签: machine-learning scikit-learn data-science


    【解决方案1】:

    我不建议在您的 train_test_split 函数中关闭 shuffle 参数,而是保持您的 random_state 变量固定以进行可重复的拆分。随机拆分比拆分数据集的前 20% 更好,这可能会扭曲您的数据。

    from sklearn.model_selection import train_test_split
    X_train, X_test, y_train, y_test = train_test_split(Input, Output, test_size = 0.20, random_state = 0)
    

    如果拆分标签错误,您应该确保正确分配输出和输入变量。

    【讨论】:

    • 知道了。我在表中的实际条目从第 2 行开始。第一行用于列索引。第二行是列属性名称。实际条目从第 2 行开始,但熊猫将其视为第 0 行。
    • 它的无效问题意味着
    【解决方案2】:

    train_test_split 函数默认会打乱你的数据。如果您不想要这个,请使用 shuffle=False。

    https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html

    如果可能,请提供您的输入数据(无论是否加扰)以重现问题。

    【讨论】:

    • 谢谢。它对我真的很有帮助。
    猜你喜欢
    • 2020-01-05
    • 2018-02-01
    • 2019-10-30
    • 2015-04-11
    • 2022-01-25
    • 2019-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多