如何在python中为2个示例字符串列表创建KolmogorovSmirnov图表?

2024-04-26 07:48:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我在为2个显示累积分布函数(CDF)的示例字符串列表创建Kolmogorov-Smirnov图表时遇到困难?你知道吗

Two-sample Kolmogorov–Smirnov test所示

我已经能够计算出整个字符串列表的Ks_2sampResult(statistic=0.12939662567915355, pvalue=0.4183080902726968),但是困难在于如何绘制图表来显示累积频率分布(CFS)

数据列表示例

列表1的子集,例如['team', 'new', 'estate', 'ho', 'ur', 'la', 'pak', 'ebay', 'biz', 'best']

列表2的子集,例如['ilsilenzio', 'stilllife', 'mathiasboe', 'achininimeshikaratnasiri', 'andrewdabeka', 'davekhodabux', 'lilytermetz', 'marianhorsley', 'lindacloutier', 'moniquehoogland',]

获取数据列表

    def getWikidataList():
    with open('./file1.csv', 'r') as f:
        read = csv.reader(f) 
        next(read)
        for line in read:
            lineitem = line[0].split()[0]
            item1 = process_text(lineitem)
            wikidatalist.append(item1[0])
        return wikidatalist


def getTwitterList1():
    with open('file2.csv', 'r') as f:
        read = csv.reader(f) 
        next(read)
        for line in read:
            lineitem = line[0].split()[0]
            item1 = process_text(lineitem)
            twitterdatalist.append(item1[0])
        return twitterdatalist



wikidatalist = getWikidataList()
twitterData = getTwitterList1()

绘制CDF

def ks_plot_comp(data_1, data_2):

    plt.figure(figsize=(12, 7))
    plt.plot(data_1, np.linspace(0, 1, len(data_1), endpoint=False))
    plt.plot(data_2, np.linspace(0, 1, len(data_2), endpoint=False))
    plt.legend('top right')
    plt.legend(['wikidata', 'twitterdata'])
    plt.title('Comparing 2 CDFs for KS-Test')
    plt.show()    
    ks_plot_comp(wikidatalist, twitterData)

enter image description here


Tags: csv字符串示例列表forreaddataplot