以神经网络为基础模型的成对ranker输出到pmml中。

rankerNN2pmml的Python项目详细描述


rankernn2pmml

用于将成对学习转换为将神经网络模型(ranknet nn,lambdarank nn)排序为pmml的python库。

支持的模型结构

它支持ranknet和lambdarank等成对学习排序(ltr)算法,其中底层模型(隐藏层)是神经网络(nn)模型。

安装

pip install rankerNN2pmml

示例

兰克内模型上的示例。

fromkeras.layersimportActivation,Dense,Input,Subtractfromkeras.modelsimportModelimportrandomimportnumpyasnpimportpandasaspdfromsklearn.preprocessingimportStandardScaler,MinMaxScalerfromrankerNN2pmmlimportrankerNN2pmml# generate dummy data.INPUT_DIM=3X1=2*np.random.uniform(size=(50,INPUT_DIM))X2=np.random.uniform(size=(50,INPUT_DIM))Y=[random.randint(0,1)for_inrange(50)]# data transformationmms=MinMaxScaler()mms.fit(np.concatenate((X1,X2),axis=0))X1=mms.transform(X1)X2=mms.transform(X2)defRankNet_model(input_shape):# Neural network structureh1=Dense(4,activation="relu",name='Relu_layer1')h2=Dense(2,activation='relu',name='Relu_layer2')h3=Dense(1,activation='linear',name='Identity_layer')# document 1 scoreinput1=Input(shape=(input_shape,),name='Input_layer1')x1=h1(input1)x1=h2(x1)x1=h3(x1)# document 2 scoreinput2=Input(shape=(input_shape,),name='Input_layer2')x2=h1(input2)x2=h2(x2)x2=h3(x2)# Subtract layersubtracted=Subtract(name='Subtract_layer')([x1,x2])# sigmoidout=Activation('sigmoid',name='Activation_layer')(subtracted)# build modelmodel=Model(inputs=[input1,input2],outputs=out)returnmodel# build modelmodel=RankNet_model(INPUT_DIM)model.compile(optimizer="adam",loss="binary_crossentropy")# train modelmodel.fit([X1,X2],Y,batch_size=10,epochs=5,verbose=1)params={'feature_names':['Feature1','Feature2','Feature3'],'target_name':'score'}rankerNN2pmml(estimator=model,transformer=mms,file='model.pmml',**params)

参数说明

  • estimator:要导出为pmml的keras模型(请参阅上面支持的模型结构)。
  • transformer:如果提供,则缩放应用于数据字段。
  • file:将导出pmml的文件的名称。
  • feature_names:如果提供了与输入层具有相同形状的功能,则功能将具有自定义名称,否则将使用通用名称(x0,…,xn-1)。
  • target\u name:当提供的目标变量将具有自定义名称时,否则将使用泛型名称score

支持什么?

  • 模型(估计器)
    • keras.models.model(请参阅上面支持的模型结构)
  • 激活功能
    • logistic(乙状结肠)
    • 身份
    • 整流器(RELU)
  • 变压器
    • sklearn.preprocessing.standardscaler
    • sklearn.preprocessing.minmaxscaler

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
javascript节点js require()和Rhino Shell load()之间的区别是什么?   While循环中的java If语句   java GXT如何在XTemplate中显示treeobject?   如何将黑白图像加载到二进制文件中?   java ORMLite不知道如何存储班级航班。扫描仪。modelFX。机场航空公司的AirlineFx。使用另一个类或自定义持久器   java组织。阿帕奇。德比。客户是SqlException JSP和JSTL查询   spring如何将clob数据分配给java变量   java从上的表获取数据(Spring)   javaphp使用Exec执行带有用户定义参数的Jar文件   java jsonschema2pojo:引用相同类型的对象   使用原语从Scala调用Java vararg方法   java ClassNotFoundException:ClientBuilder Jersey 2.25.1 Tomcat 9.0   Android(Java)cr_BindingManager:无法调用determinedVisibility()从未看到pid的连接:   Java使用LocalTime类比较没有日期的时间   Java如何初始化对象的参数?