特征工程-数值特征-多项式特征PolynomialFeatures(将数据变化为多项式特征)

函数说明:

  1. PolynomialFeatures(degree=2, interaction_only=False, include_bias=False)

参数说明:degree=2,表示多项式的变化维度为2,即^2, interaction_only表示是否只使用a*b, include_bias是否添加一列全部等于1的偏置项

对数据进行多项式变化,将两个特征a, b如果是进行2多项式变化操作,那么就相当于多出来了3个特征即a2, a*b, b^2

一般我们在使用支持向量机的时候,由于数据在低纬度上的不可分,因此我们需要对数据做一个高维度的映射,以使得数据能够更加的可分

数据说明:我们使用了游戏数据中的攻击和防御两个特征用来构造多项式特征,使用的多项式为2

代码:

第一步:导入数据

第二步:分离出[‘Attack’, ‘Defense’]两个特征

第三步:使用 PolynomialFeatures 进行多项式的变化,

第四步:使用pd.DataFrame对获得的列表添加列名,用于展示

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt


poke_df = pd.read_csv('datasets/Pokemon.csv', encoding='utf-8')
att_de = poke_df[['Attack', 'Defense']]

# 对att_de进行两两特征之间的多项式特征扩展,可以认为是把特征投向高维
from sklearn.preprocessing import PolynomialFeatures

#degree 表示多项式的维度,即^2, interaction_only表示是否仅使用a*b,include_bias表示是否引入偏执项1
po = PolynomialFeatures(degree=2, interaction_only=False, include_bias=False)
att_de_po = po.fit_transform(att_de)
print(att_de_po[:5])
# 使用pd.DataFrame将数据转换为pd格式
att_de_po_pd = pd.DataFrame(att_de_po, columns=['Attack', 'Defense', 'Attack^2', 'Att_Def', 'Defense^2'])
print(att_de_po_pd.head())

在这里插入图片描述

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当涉及到机器学习和数据分析时,Python 是一个非常强大的工具。下面是一个简单的 Python 特征工程的案例: 假设我们有一个数据集,包含房屋的各种特征(如面积、卧室数量、浴室数量等),以及对应的房价。我们的目标是通过特征工程来提取有用的特征,以便用于训练和预测。 1. 数据清洗: - 处理缺失值:查找并处理数据集中的缺失值,可以使用 pandas 库中的函数(如 dropna() 或 fillna())来删除或填充缺失值。 - 处理异常值:检测并处理数据集中的异常值,可以使用统计方法(如 Z-score 或箱线图)来识别和处理异常值。 2. 特征选择: - 相关性分析:通过计算特征与目标变量之间的相关性,选择与目标变量高度相关的特征。可以使用 pandas 中的 corr() 函数计算特征之间的相关性。 - 可视化分析:通过绘制特征与目标变量之间的关系图,观察它们之间的趋势和模式。可以使用 matplotlib 或 seaborn 等库进行绘图。 3. 特征转换: - 独热编码:对于分类特征,可以使用独热编码将其转换为二进制形式,以便机器学习算法能够处理。可以使用 pandas 中的 get_dummies() 函数进行独热编码。 - 标准化或归一化:对于数值特征,可以使用标准化或归一化方法将其缩放到一个特定的范围内。可以使用 sklearn 中的 StandardScaler 或 MinMaxScaler 进行标准化或归一化。 4. 特征构建: - 多项式特征:通过将现有特征进行组合或相乘,构建新的多项式特征。可以使用 sklearn 中的 PolynomialFeatures 进行多项式特征构建。 - 时间特征:对于包含时间信息的特征,可以提取出年、月、日、星期几等具体时间特征,有时这些时间特征对预测目标变量是有影响的。 注意:以上只是特征工程的一些常见方法和步骤,具体的应用场景可能会有所不同。在实践中,根据数据集的特点和需求,可能需要进行进一步的特征处理和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值