sklearn 自定义函数转化器FunctionTransformer使用

今天一个项目模型编译转化的过程中使用到了sklearn的函数转化器,之前虽也有接触过,但是使用频率可以说是非常低了,今天既然接触到了,就正好再详细看下。

       FunctionTransformer官方文档地址在这里

        对应的介绍我都在代码中,就不啰嗦了,直接贴出来,如下所示:

#!usr/bin/env python
#encoding:utf-8
from __future__ import division
 

'''
__Author__: 沂水寒城
sklearn自定义转化器实践
官方链接:
https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.FunctionTransformer.html

函数定义:
class sklearn.preprocessing.FunctionTransformer(func=None, inverse_func=None, *, validate=False, accept_sparse=False, 
                                                check_inverse=True, kw_args=None, inv_kw_args=None)

功能介绍:
sklearn.preprocessing.FunctionTransformer
从任意可调用对象构造转换器。
FunctionTransformer将其X(和可选的y)参数转发给用户定义的函数或函数对象,并返回此函数的结果。 
这对于无状态转换非常有用,例如获取频率日志、进行自定义缩放等。
注意:如果lambda被用作函数,则生成的转换器将不可pickleable。
'''
 


import math
import numpy as np
from sklearn.preprocessing import FunctionTransformer



def Func1(x):
    '''
    原数返回
    '''
    return x


def Func2(x):
    '''
    倍乘
    '''
    return x*2


def Func3(x):
    '''
    减半
    '''
    return x/2


def Func4(x):
    '''
    log1p=log(x+1)
    '''
    return np.log1p(x)


def Func5(x):
    '''
    expm1=exp(x)-1
    '''
    return np.expm1(x)


#Func1
transformer = FunctionTransformer(Func1)
X = np.array([[0, 1], [2, 3], [4, 5]])
newX = transformer.transform(X)
print("newX: ", newX)

#Func2
transformer = FunctionTransformer(Func2)
X = np.array([[0, 1], [2, 3], [4, 5]])
newX = transformer.transform(X)
print("newX: ", newX)

#Func3
transformer = FunctionTransformer(Func3)
X = np.array([[0, 1], [2, 3], [4, 5]])
newX = transformer.transform(X)
print("newX: ", newX)

#Func4
transformer = FunctionTransformer(Func4)
X = np.array([[0, 1], [2, 3], [4, 5]])
newX = transformer.transform(X)
print("newX: ", newX)

#Func5
transformer = FunctionTransformer(Func5)
X = np.array([[0, 1], [2, 3], [4, 5]])
newX = transformer.transform(X)
print("newX: ", newX)

       结果输出如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Together_CZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值