【问题标题】:How to split train and test dataset to X_Train y_train and X_Test y_Test? [duplicate]如何将训练和测试数据集拆分为 X_Train y_train 和 X_Test y_Test? [复制]
【发布时间】:2018-04-29 12:32:04
【问题描述】:

所以我成功地将我的数据集以 70:30 的比例拆分为训练和测试 我用这个:

df_glass['split'] = np.random.randn(df_glass.shape[0], 1)
msk = np.random.rand(len(df_glass)) <= 0.7
train = df_glass[msk]
test = df_glass[~msk]
print(train)
print(test)

现在我如何将训练和测试拆分为 X_trainy_trainX_testy_test 这样X表示数据库的特征,y表示响应?

我需要在 X_Trainy_Train 上进行监督学习并应用 ML 模块。

我的数据库如下所示: Database_snippet

【问题讨论】:

    标签: python pandas machine-learning scikit-learn


    【解决方案1】:

    Scikit-Learn 有一种方便的方法来拆分 pandas 数据帧 -

    这将进行拆分 -

    from sklearn.model_selection import train_test_split
    X_train, X_test, y_train, y_test = train_test_split(df[list_of_X_cols], df['y'], test_size=0.33, random_state=42)
    

    【讨论】:

    • 我是初学者,你能解释一下我应该通过什么“list_of_X_cols”
    • 您将视为独立变量的列的列表。这些基本上是数据中以逗号分隔的列名列表
    • 太棒了!谢谢你Vivek
    【解决方案2】:

    我想你可能会发现这对理解很有用..

    import pandas as pd
    from sklearn.cross_validation import train_test_split
    from sklearn.linear_model import LinearRegression
    
    #importing dataset
    dataset = pd.read_csv('Salary_Data.csv')
    x = dataset.iloc[:, :-1].values
    y = dataset.iloc[:, 1].values
    
    #spliting the dataset into training and test set
    x_train, x_test, y_train, y_test = train_test_split(x, y, 
    test_size=1/3, random_state=0)
    

    【讨论】:

    • 你好,你能帮我理解一下的含义吗:x = dataset.iloc[:, :-1].values y = dataset.iloc[:, 1].values Acc to the database my features位于前 5 列,最后一列是响应。
    • 这里和那里的一些调整,它工作!谢谢
    • iloc 基本上是基于整数位置的索引,用于按位置进行选择。我的模型是一个带有一个自变量的简单线性回归,我按照线性方程 y = mx + b 将数据拆分为 x =“自变量”和 y =“因变量”。
    猜你喜欢
    • 2021-02-15
    • 2021-01-13
    • 2019-06-17
    • 1970-01-01
    • 1970-01-01
    • 2019-11-11
    • 1970-01-01
    • 2020-06-23
    • 1970-01-01
    相关资源
    最近更新 更多