lambdamart.py 文件源码

python
阅读 18 收藏 0 点赞 0 评论 0

项目:rankpy 作者: dmitru 项目源码 文件源码
def plot_lambdas_parallel_coordinates(lambdas, relevance_scores, individual=False, cumulative=False):
    unique_scores = sorted(np.unique(relevance_scores).astype(int), reverse=True)
    colors = ['r', 'g', 'b', 'y', 'c', 'm', 'y', 'k']

    if not individual:
        plt.figure()

        legend_handles = []
        legend_labels = []

        for c, r in enumerate(unique_scores):
            legend_handles.append(mlines.Line2D([], [], color=colors[c], linewidth=2))
            legend_labels.append('Relevance %d' % r)

    if cumulative:
        lambdas_cumsum = lambdas.cumsum(axis=0)
        ymin, ymax = lambdas_cumsum.min(), lambdas_cumsum.max()
    else:
        ymin, ymax = lambdas.min(), lambdas.max()

    for c, r in enumerate(unique_scores):
        if individual:
            plt.figure()

        if cumulative:
            plt.plot(lambdas[:, relevance_scores == r].cumsum(axis=0), '-', marker='.', markersize=1, c=colors[c], alpha=0.4)
        else:
            plt.plot(lambdas[:, relevance_scores == r], '-', marker='.', markersize=1, c=colors[c], alpha=0.4)

        if individual:
            plt.gca().get_xaxis().set_major_locator(MaxNLocator(integer=True))
            plt.gca().set_ylim([ymin, ymax])

            plt.title('Paralell Coordinates for%sLambdas (Relevance %d)' % (' Cumulative ' if cumulative else ' ', r))
            plt.xlabel('Trees')
            plt.ylabel('Cumulative Lambda Values' if cumulative else 'Lambda Values')
            plt.show()

    if not individual:
        plt.gca().get_yaxis().set_major_locator(MaxNLocator(integer=True))
        plt.gca().set_ylim([ymin, ymax])

        plt.title('Paralell Coordinates for%sLambdas (Relevance %d)' % (' Cumulative ' if cumulative else ' ', r))
        plt.xlabel('Trees')
        plt.ylabel('Cumulative Lambda Values' if cumulative else 'Lambda Values')    

        plt.legend(legend_handles, legend_labels, loc='best')
        plt.show()
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号