如何在 python 中对 linear/multi 回归的数据集进行归一化
How to normalise dataset for linear/multi regression in python
我正在使用数据集通过多变量回归技术进行一些预测。我必须根据一些自变量来预测员工的薪水,例如性别、百分比、出生日期、不同学科的分数、学位、专业等。
数字参数(例如不同科目的分数和百分比)适合与回归模型一起使用。但是我们如何在这里规范化非数字参数(性别、出生日期、学位、专业)?
P.S。 : 我正在使用 scikit-learn : machine learning in python 包。
希望对您有所帮助。 link.
上提供了有关如何使用该功能的完整说明
http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.normalize.html
您想对分类参数进行编码。
- 对于性别等二元分类参数,这相对容易:引入一个二元参数:1=女性,0=男性。
- 如果有两个以上的类别,你可以试试one-hot-encoding。
阅读有关 sci-kit 学习文档的更多信息:
http://scikit-learn.org/stable/modules/preprocessing.html#encoding-categorical-features
注意日期不是分类参数!将它转换成一个 unix 时间戳(自纪元以来的秒数),你就有了一个可以回归的很好的参数。
"Normaliz[ing] non-numeric parameters"实际上是一个巨大的回归区域。最常见的处理方法是将每个分类变量转换为一组称为 dummy variables.
的二元变量
每个具有 n
值的分类应转换为 n-1
虚拟变量。因此,例如,对于性别,您可能有一个变量 "female",在每次观察时该变量为 0 或 1。为什么是 n-1
而不是 n
?因为你想避免 dummy variable trap,基本上所有 1 的截距列都可以从你的虚拟列的线性组合中重建。用相对非技术的术语来说,这很糟糕,因为它弄乱了进行回归所需的线性代数。
我对 scikit-learn 库不太熟悉,但我强烈建议您确保无论使用什么方法,都要确保每个分类都成为 n-1
新列,而不是 n
.
我正在使用数据集通过多变量回归技术进行一些预测。我必须根据一些自变量来预测员工的薪水,例如性别、百分比、出生日期、不同学科的分数、学位、专业等。
数字参数(例如不同科目的分数和百分比)适合与回归模型一起使用。但是我们如何在这里规范化非数字参数(性别、出生日期、学位、专业)?
P.S。 : 我正在使用 scikit-learn : machine learning in python 包。
希望对您有所帮助。 link.
上提供了有关如何使用该功能的完整说明http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.normalize.html
您想对分类参数进行编码。
- 对于性别等二元分类参数,这相对容易:引入一个二元参数:1=女性,0=男性。
- 如果有两个以上的类别,你可以试试one-hot-encoding。 阅读有关 sci-kit 学习文档的更多信息: http://scikit-learn.org/stable/modules/preprocessing.html#encoding-categorical-features
注意日期不是分类参数!将它转换成一个 unix 时间戳(自纪元以来的秒数),你就有了一个可以回归的很好的参数。
"Normaliz[ing] non-numeric parameters"实际上是一个巨大的回归区域。最常见的处理方法是将每个分类变量转换为一组称为 dummy variables.
的二元变量每个具有 n
值的分类应转换为 n-1
虚拟变量。因此,例如,对于性别,您可能有一个变量 "female",在每次观察时该变量为 0 或 1。为什么是 n-1
而不是 n
?因为你想避免 dummy variable trap,基本上所有 1 的截距列都可以从你的虚拟列的线性组合中重建。用相对非技术的术语来说,这很糟糕,因为它弄乱了进行回归所需的线性代数。
我对 scikit-learn 库不太熟悉,但我强烈建议您确保无论使用什么方法,都要确保每个分类都成为 n-1
新列,而不是 n
.