如何根据 pandas 上的数值数据(cdf 和 pdf 样式)进行概率特征工程
How to do probit feature engineering from numerical data (cdf and pdf style) on pandas
这个问题是基于我目前的理解(编辑更准确的统计术语非常惠康)。在我看来,probit 是正确的术语。我想做 probit_pdf
和 probit_cdf
probit_pdf
是变量等于某个值的概率
probit_cdf
是变量小于或等于value
的概率
这是我的数据
Id Value
1 2
2 4
3 2
4 6
5 5
6 4
7 2
8 4
9 2
10 5
为了让问题更清楚,我举几个Id
的例子
probit_pdf
示例,对于 Id = 1
:
这是预期的输出,因为 Value = 2
的概率是 0.40
(4
在 10
中),所以 probit_pdf
是 0.40
.
probit_cdf
示例,对于 Id = 5
:
因为Value >= 5
的概率是0.90
(9
在10
),所以probit_cdf
是0.90
所以我的预期输出是
Id Value probit_pdf probit_cdf
1 2 0.40 0.40
2 4 0.30 0.70
3 2 0.40 0.40
4 6 0.10 1.00
5 5 0.20 0.90
6 4 0.30 0.70
7 2 0.40 0.40
8 4 0.30 0.70
9 2 0.40 0.40
10 5 0.20 0.90
首先对于 probit_pdf
使用 GroupBy.transform
与 size
并除以 DataFrame
的长度,对于 probit_cdf
将每个值与所有值进行比较,得到 sum
s 并以相同的方式划分:
lens = len(df)
df['probit_pdf'] = df.groupby('Value')['Value'].transform('size').div(lens)
df['probit_cdf'] = df['probit_pdf'].apply(lambda x: df['probit_pdf'].ge(x).sum()).div(lens)
print (df)
Id Value probit_pdf probit_cdf
0 1 2 0.4 0.4
1 2 4 0.3 0.7
2 3 2 0.4 0.4
3 4 6 0.1 1.0
4 5 5 0.2 0.9
5 6 4 0.3 0.7
6 7 2 0.4 0.4
7 8 4 0.3 0.7
8 9 2 0.4 0.4
9 10 5 0.2 0.9
这个问题是基于我目前的理解(编辑更准确的统计术语非常惠康)。在我看来,probit 是正确的术语。我想做 probit_pdf
和 probit_cdf
probit_pdf
是变量等于某个值的概率
probit_cdf
是变量小于或等于value
这是我的数据
Id Value
1 2
2 4
3 2
4 6
5 5
6 4
7 2
8 4
9 2
10 5
为了让问题更清楚,我举几个Id
的例子
probit_pdf
示例,对于 Id = 1
:
这是预期的输出,因为 Value = 2
的概率是 0.40
(4
在 10
中),所以 probit_pdf
是 0.40
.
probit_cdf
示例,对于 Id = 5
:
因为Value >= 5
的概率是0.90
(9
在10
),所以probit_cdf
是0.90
所以我的预期输出是
Id Value probit_pdf probit_cdf
1 2 0.40 0.40
2 4 0.30 0.70
3 2 0.40 0.40
4 6 0.10 1.00
5 5 0.20 0.90
6 4 0.30 0.70
7 2 0.40 0.40
8 4 0.30 0.70
9 2 0.40 0.40
10 5 0.20 0.90
首先对于 probit_pdf
使用 GroupBy.transform
与 size
并除以 DataFrame
的长度,对于 probit_cdf
将每个值与所有值进行比较,得到 sum
s 并以相同的方式划分:
lens = len(df)
df['probit_pdf'] = df.groupby('Value')['Value'].transform('size').div(lens)
df['probit_cdf'] = df['probit_pdf'].apply(lambda x: df['probit_pdf'].ge(x).sum()).div(lens)
print (df)
Id Value probit_pdf probit_cdf
0 1 2 0.4 0.4
1 2 4 0.3 0.7
2 3 2 0.4 0.4
3 4 6 0.1 1.0
4 5 5 0.2 0.9
5 6 4 0.3 0.7
6 7 2 0.4 0.4
7 8 4 0.3 0.7
8 9 2 0.4 0.4
9 10 5 0.2 0.9