gpt4 book ai didi

python - Sklearn 预处理 - PolynomialFeatures - 如何保留输出数组/数据帧的列名/标题

转载 作者:太空狗 更新时间:2023-10-29 18:17:10 25 4
gpt4 key购买 nike

TLDR:如何从 sklearn.preprocessing.PolynomialFeatures() 函数获取输出 numpy 数组的 header ?


假设我有以下代码...

import pandas as pd
import numpy as np
from sklearn import preprocessing as pp

a = np.ones(3)
b = np.ones(3) * 2
c = np.ones(3) * 3

input_df = pd.DataFrame([a,b,c])
input_df = input_df.T
input_df.columns=['a', 'b', 'c']

input_df

a b c
0 1 2 3
1 1 2 3
2 1 2 3

poly = pp.PolynomialFeatures(2)
output_nparray = poly.fit_transform(input_df)
print output_nparray

[[ 1. 1. 2. 3. 1. 2. 3. 4. 6. 9.]
[ 1. 1. 2. 3. 1. 2. 3. 4. 6. 9.]
[ 1. 1. 2. 3. 1. 2. 3. 4. 6. 9.]]

我怎样才能让 3x10 矩阵/output_nparray 继承 a、b、c 标签,它们与上面的数据有何关系?

最佳答案

scikit-learn 0.18 添加了一个漂亮的 get_feature_names()方法!

>> input_df.columns
Index(['a', 'b', 'c'], dtype='object')

>> poly.fit_transform(input_df)
array([[ 1., 1., 2., 3., 1., 2., 3., 4., 6., 9.],
[ 1., 1., 2., 3., 1., 2., 3., 4., 6., 9.],
[ 1., 1., 2., 3., 1., 2., 3., 4., 6., 9.]])

>> poly.get_feature_names(input_df.columns)
['1', 'a', 'b', 'c', 'a^2', 'a b', 'a c', 'b^2', 'b c', 'c^2']

请注意,您必须为其提供列名,因为 sklearn 本身不会从 DataFrame 中读取它。

关于python - Sklearn 预处理 - PolynomialFeatures - 如何保留输出数组/数据帧的列名/标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36728287/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com