【问题标题】:Keeping or not keeping header in the CSV for training在 CSV 中保留或不保留标题以进行训练
【发布时间】:2021-02-23 17:11:18
【问题描述】:

是否总是需要从导入的 CSV 中删除标题以进行训练?

这就是我所拥有的……

raw_data_df = [pd.read_csv(
            file, header=None, skiprows=[0], low_memory=False) for file in input_files]
train_data_df = pd.concat(raw_data_df)

我们在跳过标头时使用了header=Noneskiprows=[0],并将其传递给 LogisticRegression().fit()

还是保留标题更好?

【问题讨论】:

    标签: python-3.x pandas csv scikit-learn logistic-regression


    【解决方案1】:

    如果所有文件中的标题都相同,那么您可以保留它们。或者你只保留第一个文件的标题。

    拥有标题的好处是,当您运行逻辑回归时,您可以轻松找出哪些系数属于哪些列名称(以及哪些系数最重要)。

    例如:

    import numpy as np
    import pandas as pd
    from sklearn.linear_model import LogisticRegression
    
    lr = LogisticRegression()
    lr.fit(X_train, y_train)
    
    df_lr_coef = pd.DataFrame({
        'features': lr.classes_, 
        'coefficients': lr.coef_,
        'coef_abs': np.abs(lr.coef_),
    }).sort_values(by='coef_abs', ascending=False)
    

    【讨论】:

    • 保留标题应该不会影响模型的性能或产生不必要的噪音吧?
    • 不,我不知道。 sklearn 接受数据帧作为输入是有充分理由的,它可以更轻松地进行模型检查。为了加快训练速度,设置 n_jobs=-1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-26
    相关资源
    最近更新 更多