如何在列表中随机选择行并获取其索引(Python)

不好意思,不知道是不是我的表达有问题,我在这里似乎找不到任何与我的问题相似的东西。

我有一个二维列表,每行代表一个案例,每列代表一个特征(用于机器学习)。此外,我还有一个单独的列表(列)作为标签。

我想从二维列表中随机选择行来训练分类器,并使用剩余的行来测试准确性。因此,我需要知道所有用于训练的行的索引,以避免重复使用。

我认为这个问题可以分为两部分:1)如何随机选择;2)如何获取索引。

我再次不知道为什么在这里搜索不到好的信息(可能是我太笨了)。

抱歉我还是社区的新手,所以可能犯了很多格式错误。如果您有任何建议,请告诉我。

这是我用来获取二维列表的代码部分

#273 = 案例数量feature_list=[[0]*len(mega_list)]*273#创建计数器以便稍后使用索引link_count=0feature_count=0#print len(mega_list)for link in url_list[:-1]:    #设置URL    samp_url='http://www.mtsamples.com'+link    samp_url = "%20".join( samp_url.split() )    #使用关键词进行解析    samp_soup=BeautifulSoup(urllib2.urlopen(samp_url).read())    keywords=samp_soup.find('meta')['content']    keywords=keywords.split(',')    for keys in keywords:        #print 'megalist: '+ str(mega_list.index(keys))        if keys in mega_list:            feature_list[link_count][mega_list.index(keys)]=1 

mega_list: 包含所有关键词的列表

feature_list: 二维列表,如果mega_list中的某个词存在,则相应的单元格设为1,否则为0


回答:

我建议将数据存储在pandas数据框中,而不是二维列表。如果我理解你的数据正确,你可以这样做:

import pandas as pddf = pd.DataFrame(feature_list, columns = mega_list)

我没有看到提到任何因变量,但我假设你有一个,因为你提到了分类算法。如果你的因变量称为”Y”,并且是以列表格式存储,其索引与你的特征对齐,那么这段代码将对你有用:

from sklearn import cross_validationx_train, x_test, y_train, y_test = cross_validation.train_test_split(    df, Y, test_size=0.8, random_state=0)

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注