使用sklearn.preprocessing.PolynomialFeatures来进行特征的构造。

它是使用多项式的方法来进行的,如果有a,b两个特征,那么它的2次多项式为(1,a,b,a^2,ab, b^2)。

PolynomialFeatures有三个参数

degree:控制多项式的度

interaction_only: 默认为False,如果指定为True,那么就不会有特征自己和自己结合的项,上面的二次项中没有a^2和b^2。

include_bias:默认为True。如果为True的话,那么就会有上面的 1那一项。

## GBDT+LR
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.ensemble import GradientBoostingClassifier
from sklearn.preprocessing import OneHotEncoder
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import roc_curve,auc

# 弱分类器的数目
n_estimator = 10
# 随机生成分类数据。
X, y = make_classification(n_samples=80000)  
# 切分为测试集和训练集,比例0.5
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.5)
# 将训练集切分为两部分,一部分用于训练GBDT模型,另一部分输入到训练好的GBDT模型生成GBDT特征,然后作为LR的特征。这样分成两部分是为了防止过拟合。
X_train, X_train_lr, y_train, y_train_lr = train_test_split(X_train, y_train, test_size=0.5)
# 调用GBDT分类模型。
grd = GradientBoostingClassifier(n_estimators=n_estimator)
# 调用one-hot编码。
grd_enc = OneHotEncoder()
# 调用LR分类模型。
grd_lm = LogisticRegression()

'''使用X_train训练GBDT模型,后面用此模型构造特征'''
grd.fit(X_train, y_train)

# fit one-hot编码器
# grd.apply方法给定的是:样本在算法中落在第几个叶子上,在GBDT中该方法返回的格式为: [n_samples, n_estimator, n_classes]
grd_enc.fit(grd.apply(X_train)[:, :, 0])

''' 
使用训练好的GBDT模型构建特征,然后将特征经过one-hot编码作为新的特征输入到LR模型训练。
'''
grd_lm.fit(grd_enc.transform(grd.apply(X_train_lr)[:, :, 0]), y_train_lr)

# 用训练好的LR模型多X_test做预测
y_pred_grd_lm = grd_lm.predict_proba(grd_enc.transform(grd.apply(X_test)[:, :, 0]))[:, 1]
# 根据预测结果输出
fpr_grd_lm, tpr_grd_lm, _ = roc_curve(y_test, y_pred_grd_lm)
print("AUC:{}".format(auc(fpr_grd_lm, tpr_grd_lm)))

PolynomialFeatures多项式转换相关推荐

  1. python输出一个函数多项式_python实现PolynomialFeatures多项式的方法

    sklearn生成多项式 import numpy as np from sklearn.preprocessing import polynomialfeatures #这哥用于生成多项式 x=np ...

  2. sklearn中PolynomialFeatures多项式特征参数

    PolynomialFeatures:多项式回归参数 PolynomialFeatures参数: 现在有(a,b)两个特征,使用degree=2的二次多项式则为(1,a, a^2, ab, b ,b^ ...

  3. python sklearn 归一化_数据分析|Python特征工程(5)

    OX00 引言 数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已.由此可见,特征工程在机器学习中占有相当重要的地位.在实际应用当中,可以说特征工程是机器学习成功的关键. 特征做不好,调 ...

  4. 人工智障学习笔记——机器学习(1)特征工程

    一.概念 学习过Machine Learning的一定听过这句话:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已. 所谓特征工程,做的就是[ 最大限度地从原始数据中提取特征点以供算法 ...

  5. 机器学习和深度学习_算法测评 | 机器学习VS深度学习

    OLDER BROTHER 大家好,我是你们的机房老哥! "机器学习进阶" 「前言」 " 机器学习和深度学习是很早前就埋下的坑,最近决定整合写一篇,利用机器学习的经典算法 ...

  6. 天池学习赛:工业蒸汽量预测2——特征工程

    上一篇<天池学习赛:工业蒸汽量预测1--数据探索> 目录 1.特征工程 1.1 预处理 1.2 特征处理 1.3 特征降维 1.3.1 特征选择 1.3.2 线性降维 2.赛题代码 3 结 ...

  7. 【机器学习】阿里云天池竞赛——工业蒸汽量预测(2)

    机器学习经典赛题:工业蒸汽量预测(2) 机器学习经典赛题:工业蒸汽量预测(2) 3.1 特征工程的重要性和处理 3.2 数据预处理和特征处理 3.2.1 数据预处理 3.2.2 特征处理 3.3 特征 ...

  8. 工业蒸汽量预测-特征工程

    本篇是<阿里云天池大赛赛题解析-机器学习篇>的第一部分工业蒸汽量预测的第三章-特征工程的内容,并附带了一些知识点的网页链接 上一篇工业蒸汽量预测 3.1 特征工程的重要性和处理 特征是原始 ...

  9. Python之特征选择实战(转载)

    转载自https://www.cnblogs.com/babyfei/p/9674374.html 目录 1 特征工程是什么? 2 数据预处理 2.1 无量纲化 2.1.1 标准化 2.1.2 区间缩 ...

最新文章

  1. csu 1985: 驱R符
  2. 上海网络推广为大家讲解细节标签能给网站带来的作用与效果!
  3. jqueryppt_jquery简单实现幻灯片的方法
  4. Git提交到码云(转)
  5. java url 双引号_java - Java在POST请求中发送带有转义双引号的JSON字符串[duplicate] - 堆栈内存溢出...
  6. SQL WITH NOCHECK 和 CLUSTERED | NONCLUSTERED
  7. BIM 360 Docs API在操作欧洲数据中心内容的一些调整
  8. 20、淘宝技术这十年
  9. 【b站黑马程序员C++视频学习笔记-文件操作】
  10. 为什么越受重视的游戏项目越难开发好!
  11. app store connect
  12. PLSQL Developer解决科学计数法
  13. 项目一 国家电力项目思路总结
  14. 一文了解CDN应用加速
  15. 2021年各大互联网大厂年终奖一览表~新年干劲十足
  16. iOS 开发的资源整理
  17. Tableau雷达图、凹凸图
  18. 视频 伪原创 教程 去除视频md5
  19. 智能家居系统设计与实现
  20. 2022新一代设备维修管理系统助力企业降本增效

热门文章

  1. SHA1 算法加密技术核心思想
  2. python中geometry用法_Python geometry.Point方法代码示例
  3. 悟道 冥 与 力 万事皆可成
  4. mysql里面使用技巧_MySQL的使用技巧
  5. 极简的wrk安装和使用教程
  6. 如何用AI设计一幅杂志封面
  7. linux中怎么修改用户组名,Linux 下如何修改用户名(同时修改用户组名和家目录)...
  8. 王者荣耀角色注销后我的服务器列表怎么删除,王者荣耀账号怎么注销 角色删除流程要求...
  9. 前后端分离状态保持问题之JWT
  10. 远程视频监控之构思篇