生成特征_使用gplearn自定义特征自动生成模块

背景:数据科学领域中,数据一直都是主要驱动力,特征工程作为其中重要一环,成为无论是kaggle类的数据竞赛,还是工业界应用中关注的重点。特征工程中有重要的一个环节叫做特征融合,好的特征融合能帮助构造当前模型不能学习到的知识,通常产生新的特征会很依赖于专家知识,当在缺乏专家知识的情况下,我们就需要一款工具帮我们自动生成特征。因此gplearn就主要产生了。

简介:待补充

gplearn特征生成使用案例:以官方给出的boston房屋数据为例

  • 安装
pip install gplearn #python3.7版本
pip install gplearn==0.3.0 #python2.7版本,当前0.4版本的gplearn不再支持python2.7
  • 引入库
from sklearn.datasets import load_boston
from gplearn.genetic import SymbolicTransformer›
import pandas as pd
import numpy as np
import gplearn as gp
  • 数据导入
def data_prepare():boston = load_boston()boston_feature = pd.DataFrame(boston.data, columns=boston.feature_names)boston_label = pd.Series(boston.target).to_frame("TARGET")boston = pd.concat([boston_label, boston_feature], axis=1)return bostondata = data_prepare()
  • 自定义可计算的算子:logical算子使用官方给定案例,自定义算子通过make_function()实现,这里我自定义一个box-cox算子(lamda = 2),注意一定要有报错机制,比如np.errstate,不然不会通过。官方自定义的‘add’等算子可以直接使用
def _logical(x1,x2,x3,x4):return np.where(x1 > x2,x3,x4)
logical = gp.functions.make_function(function = _logical,name = 'logical',arity = 4)
def _boxcox2(x1):with np.errstate(over='ignore', under='ignore'):return (np.power(x1,2)-1)/2
binary = gp.functions.make_function(function = _binary,name = 'binary',arity = 1)
function_set = ['add', 'sub', 'mul', 'div', 'log', 'sqrt', 'abs', 'neg','inv','sin','cos','tan', 'max', 'min',boxcox2,logical]
  • 初始化
gp1 = SymbolicTransformer(generations=1, population_size=1000,hall_of_fame=600, n_components=100,function_set=function_set,parsimony_coefficient=0.0005,max_samples=0.9, verbose=1,random_state=0, n_jobs=3)
  • 生成新特征
label = data['TARGET']
train = data.drop(columns=['TARGET'])
gp1.fit(train,label)
new_df2 = gp1.transform(train)
  • 查看新生成的特征
from IPython.display import Image
import pydotplus
graph = gp1._best_programs[0].export_graphviz()
graph = pydotplus.graphviz.graph_from_dot_data(graph)
Image(graph.create_png())

d1b09357d4f3122992b3c8c2a80572e9.png

gplearn参数的介绍

  • unction_set。用于构成程式的函数(算子)集合
  • tournament_size。参与遗传算法计算下一代特征的特征数量(控制特征之间的相关性)
  • stopping_criteria。遗传算法停止条件
  • init_depth。初始化的树深度
  • parsimony coefficient。简化系数
  • p_hoist_mutation。提升变异系数
  • max_samples。最大采样比例
  • hall_of_fame。备选数量
  • const_range。混入程式的常数范围
  • init_method。初始化方法
  • metric。适应度标准
  • p_crossover。交叉变异系数
  • warm_start。热启动
  • n_jobs。并行计算使用的核心数量
  • verbose。显示信息控制
  • random_state。随机种子
  • p_subtree_mutation。子树变异系数
  • p_point_mutation。点变异系数

参考:

gplearn官网

一个github代码例子

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/554373.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

腾讯视频电脑版下载_怎么样下载腾讯视频

软件是否好用,还得大家下载腾讯视频安装才知道。本文分享腾讯视频电脑版下载_怎么样下载腾讯视频。腾讯视频播放器不管是在界面设计、还是在功能操作使用、启动播放速度、视频内容数量、画面品质等方面均得到了用户的高度认可,是目前用户量最大的播放器软…

python数字对应车站_python爬虫查询车站信息

#车站信息查询import requests#1.获得url(存取车站信息的url)并读取,根据获得信息的特点去掉无用的信息并转换存储到列表中url"https://kyfw.12306.cn/otn/resources/js/framework/station_name.js?station_version1.9090"txtrequests.get(url).text#pri…

优酷视频如何进行连续播放?

优酷视频如何进行连续播放? 您可按下列方式打开和关掉持续播发: 移动端:开启优酷app-左上方【设定】-开启或关掉【持续播发】按键就可以。 pc端:开启优酷pc客户端-点一下左上方【设定】-启用或不启用【自始至终持续播发】就可以…

yaw公式_坐标系和yaw, pitch, roll等基础概念

坐标系右手坐标系:把右手拇指食指中指伸直并正交,拇指X,食指Y,中指Z。一般无特殊说明,都是右手坐标系。右手坐标系的旋转正方向:从轴的正方向看向原点,逆时针方向即是旋转正向。或者&#xff0c…

腾讯视频下载的视频怎么剪辑_怎样卸载腾讯视频

腾讯视频影音是一款界面轻松友好,功能全面完善,方便好用,绿色安全,完全免费的、专注视频播放的客户端软件,您可运行腾讯视频影音,在线享受腾讯视频网站内全部免费高清正版视频。腾讯视频可以在线享受丰富多…

迈普路由器访问控制列表配置命令_如何选购企业路由器?选购企业路由器需注意什么...

3、企业自身的需求选择路由器时,首先考虑的是企业自身的需求,主要表现在下面9个原则:实用性原则。采用成熟的、经实践证明其实用性的技术。这能满足现行业务的管理,又能适应3~5年内业务发展的要求。可靠性原则。设计详细的故障处理…

腾讯视频网页下载_腾讯视频怎么下载视频

本文给大家整理了腾讯视频网页下载_腾讯视频怎么下载视频方面的内容。腾讯视频独播剧质量还是可以的,比较给力的是腾讯视频大量买入了老剧的版权,不乏一些比较经典的港剧,还把这些老剧修复了。腾讯视频播放器是一款支持多种音视频格式的主流播…

bazel 链接_bazel-链接第三方动态库,静态库。

demo4示例 链接第三方动态库,静态库。使用cc_import链接外部库。原理是通过cc_import规则导入第三方库,然后cc_binary再依赖cc_import规则的target,也即依赖第三方库。demo4目录树├── link│ ├── BUILD│ ├── include│…

腾讯视频下载后为什么还需联网看_腾讯视频如何下载离线视频

今天播放器家园网分享一下腾讯视频下载后为什么还需联网看_腾讯视频如何下载离线视频,希望可以帮助大家。腾讯视频有很多小功能是其他播放器没有的,大家可以下载后慢慢探索一下,小编非常喜欢的一个功能就是看电视剧的时候可以选择只看某个演员…

2台服务器负载均衡后synchronized_一篇有趣的负载均衡算法实现

负载平衡(Load balancing)是一种在多个计算机(网络、CPU、磁盘)之间均匀分配资源,以提高资源利用的技术。使用负载均衡可以最大化服务吞吐量,可能最小化响应时间,同时由于使用负载均衡时,会使用多个服务器节点代单点服务&#xff…

腾讯视频下载安装免费装到手机_腾讯视频怎么上传个人本地视频

不管这个腾讯视频好用与否,都有一大批用户,本文播放器家园网小编分享腾讯视频下载安装免费装到手机_腾讯视频怎么上传个人本地视频。VIP会员频道聚合海量VIP品质内容,连续签到解锁惊喜奖励、摇一摇抽VIP天卡、领取会员专属权益,快…

php mysql 中文_PHP连接MySQL查询结果中文显示乱码解决方法

我们首先假设数据库中采用的编码为UTF-8这时我们在PHP页面中应当首先添加此处charset的值utf-8必须与文件保存时的编码类型一样之后在数据库查询前添加mysql_query("set names utf8");该行语句的编码值也应当与上面的编码值一样。总而言之,网页保存的编码…

怎样将腾讯视频下载到的电影传入手机_腾讯视频怎么缓存视频

不管这个腾讯视频好用与否,都有一大批用户,本文播放器家园网小编分享怎样将腾讯视频下载到的电影传入手机_腾讯视频怎么缓存视频。腾讯视频拥有独立的播放界面,软件采用独立的播放界面进行播放,用户点击喜欢的影视播放之后不会干扰…

腾讯视频主演角色弹幕怎么发

本文播放器家园网小编给大家分享“腾讯视频主演角色弹幕怎么发”。只需要打开腾讯视频,就可以在线享受腾讯视频网站内全部免费高清正版视频、最新影视大片、最独家的综艺、旅游、纪录片,在众多的播放器当中,腾讯视频堪称完美。腾讯视频可以在…

mysql 重装之后_mysql重装之后 复制data

(哇,编程小白的第一篇博客丫,激动)Q one:mysql需要重装,数据该怎么办。方法一:数据表最好是导出成.sql文件,这样才比较安全。方法二:直接copy了data文件:在mysql安装盘下的programda…

360极速浏览器兼容模式怎么设置在哪

360极速浏览器兼容模式怎么设置在哪,360浏览器怎么设置兼容模式?大部分浏览器都有两种视图模式:极速模式、兼容模式,这一点360浏览器也不例外,在加载速度上,极速模式快于兼容模式,要在360浏览器中切换极速…

log4j2 mysql_spring boot使用log4j2将日志写入mysql数据库

log4j2官方例子在spring boot中报错而且还是用的是org.apache.commons.dbcp包我给改了一下使用org.apache.commons.dbcp2包1.log4j2.xml如下:method"getDatabaseConnection" />includeLocation"true">AsyncLogger 表示是异步插入.需要在pom.xml中插入…

如何重置IE浏览器?重置IE浏览器的方法

ie浏览器是一款自带的浏览器服务软件,这款软件使用非常的方便,界面使用非常的简洁,浏览器的功能更加的全面,用户可以使用手机快速搜索,那么如何进行IE浏览器的重置呢?如果用户需要使用IE浏览器,想对IE浏览…

Win10系统怎么锁定IE浏览器主页

核心提示:Win10系统怎么锁定IE浏览器主页?一起看看吧! 目前,不少电脑用户都升级了win10系统,不过,关于win10系统的一些使用方法却不是很了解,比如说:当win10系统的IE浏览器被流氓软件窜改的主页网址该怎么…

vs2010 mysql linq to sql 系列_LINQ to SQL 系列 如何使用LINQ to SQL插入、修改、删除数据...

LINQ和 LINQ to SQL 都已经不是一个新事物了,但是我接触的比较晚,本着绝知此事要躬行的态度,决定写这个系列。本文使用的测试环境是VS 2010,和sql server 2005数据库。第一篇 从CUD开始,如何使用LINQ to SQL插入…