一个python库,用于不同程度的排名(一种学习排名的方法)

fairsearchdeltr的Python项目详细描述


python的公平搜索deltr

imageimageimageimageimage

这是实现DELTR模型以获得公平排名的python库。

安装

要安装fairsearchdeltr,只需使用pip(或pipenv):

pip install fairsearchdeltr

就这样!

在代码中使用它

您需要先从包中导入类:

fromfairsearchdeltrimportDeltr

训练A型

您需要先对模型进行培训,然后才能对文档进行排序。

# import other helper librariesimportpandasaspdfromioimportStringIO# load some train data (this is just a sample - more is better)train_data_raw="""q_id,doc_id,gender,score,judgment    1,1,1,0.962650646167003,1    1,2,0,0.940172822166108,0.98    1,3,0,0.925288002880488,0.96    1,4,1,0.896143226020877,0.94    1,5,0,0.89180775633204,0.92    1,6,0,0.838704766545679,0.9    """train_data=pd.read_csv(StringIO(train_data_raw))# setup the DELTR objectprotected_feature="gender"# column name of the protected attribute (index after query and document id)gamma=1# value of the gamma parameternumber_of_iterations=10000# number of iterations the training should runstandardize=True# let's apply standardization to the features# create the Deltr objectdtr=Deltr(protected_feature,gamma,number_of_iterations,standardize=standardize)# train the modeldtr.train(train_data)>>array([0.02527054,0.07692437])# your run should have approximately same results  

使用模型对

现在,您可以使用获得的模型对一些数据进行排序。

# load some test/prediction dataprediction_data_raw="""q_id,doc_id,gender,score    1,7,0,0.9645    1,8,0,0.9524    1,9,0,0.9285    1,10,0,0.8961    1,11,1,0.8911    1,12,1,0.8312    """prediction_data=pd.read_csv(StringIO(prediction_data_raw))# use the model to rank the data  dtr.rank(prediction_data)>>doc_idgenderjudgement41110.07484951210.0637700700.0634861800.0612482900.05682831000.050836# the result will be a re-ranked dataframe

库中包含每个函数的足够的代码文档。

更深入地检查模型

您可以使用名为log的特殊属性来检查模型的训练是如何进行的。

dtr.log>>[<TrainStep[1553844278383,[0.019264690.00976336],[[-0.00125304-0.0014605][-0.00125304-0.0014605][-0.00125304-0.0014605][-0.00125304-0.0014605][-0.00125304-0.0014605][-0.00125304-0.0014605]],5.999620187652397,0.0]>,...]

log返回来自fairsearchdeltr.models.TrainStep类的对象列表。类是训练每个步骤中参数的表示。 包含一个timestampomegaomega_gradientlossloss_standardloss_exposure

开发

  1. 克隆此存储库git clone https://github.com/fair-search/fairsearchdeltr-python
  2. 将目录更改为克隆存储库的目录cd WHERE_ITS_DOWNLOADED/fairsearchdeltr-python
  3. 使用任何IDE处理代码

测试

只需运行:

python setup.py test 

学分

本文介绍了deltr算法:

这个图书馆是由Ivan Kitanovski在论文的基础上开发的。有关详细信息,请参见license文件。

如有任何问题,请联系Mieke Zehlike

另请参见

您还可以看到DELTR for ElasticSearch 以及DELTR Java library

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

推荐PyPI第三方库


热门话题
java静态键入和编写一个简单的矩阵库   java如何最小化层次结构的代码量   这是在Google云数据存储中使用Java按键查询的正确方法吗?   java Android php+mysql+json执行异步任务时出错   java Hadoop Hbase访问被拒绝异常   java如何在json中指定特定的对象路径   JavaSpringJPA/Hibernate在使用@modify和@Query进行特殊更新之前调用完整更新   java多个错误通知   java插入Linkedlist和Node   java将图像放在webview中并调整其宽度   Java没有真实属性的缺点是什么?   java“isGooglePlayServicesAvailable”(此)已被弃用   java托管HIPPO CMS   安卓 Java。网URI构造函数不是编码字符(&C)   java如何用hibernate映射Deque?   java传递枚举类型作为参数   java自由堆大小在Maven中不会增加   java如何使用hashmap和arraylist的循环逻辑?   java如何使用JDBC复制MySql数据库