日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

psql where里有自定义函数慢_使用gplearn自定义特征自动生成模块

發布時間:2023/12/15 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 psql where里有自定义函数慢_使用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())

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代碼例子

總結

以上是生活随笔為你收集整理的psql where里有自定义函数慢_使用gplearn自定义特征自动生成模块的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。