小编Pau*_*l85的帖子

如何获取特征的权重

我正在处理高度不平衡的数据集,我的想法是从我的libSVM模型中获取特征权重值.至于现在,我可以使用线性内核,在那里我可以获得特征权重,但是当我使用rbf或者poly,我无法实现我的目标.

在这里,我使用的sklearn是我的模型,很容易获得线性内核使用的特征权重.coef_.任何人都可以帮我做同样的事情rbfpoly?我到目前为止尝试做的事情如下:

svr = SVC(C=10, cache_size=200, class_weight='auto', coef0=0.0, degree=3.0, gamma=0.12,kernel='rbf', max_iter=-1, probability=True, random_state=0,shrinking=True, tol=0.001, verbose=False)
clf = svr.fit(data_train,target_train)
print clf.coef_
Run Code Online (Sandbox Code Playgroud)

python machine-learning svm libsvm scikit-learn

11
推荐指数
1
解决办法
8124
查看次数

读取大文件(> 8GB)并将数据转储到字典并再次加载的最快方法

我正在处理一个大的蛋白质序列(fasta)文件(> 8GB),我的想法是创建字典,其中键和值分别是蛋白质id和序列.

至于现在我可以使用pickle然后尝试打开数据并将数据转储到字典中cpickle(我读取pickle更快的数据转储cpickle速度并加载数据更快).但这里的主要问题是时间:制作和转储它作为字典需要花费太多时间和内存(PC有8GB内存).

有没有更快的选项可用于处理Python中的大文件?

这是我创建字典并转储数据的Python代码:

from Bio import SeqIO
import pickle,sys

fastaSeq = {}
with open('uniref90.fasta') as fasta_file:
    for seq_record in SeqIO.parse(fasta_file, 'fasta'):
       header =seq_record.id
       uniID = header.split('_')[1]
       seqs = str(seq_record.seq)
       fastaSeq[uniID] = seqs

f = open('uniref90.obj', 'wb')
pickle.dump(fastaSeq, f, pickle.HIGHEST_PROTOCOL)
f.close()
Run Code Online (Sandbox Code Playgroud)

在单独的Python程序中加载字典并执行某些任务:

import cPickle as pickle
seq_dict = pickle.load(open("uniref90.obj", "rb"))
for skey in seq_dict.keys():
   #doing something 
Run Code Online (Sandbox Code Playgroud)

python file-access large-files python-2.7

7
推荐指数
1
解决办法
6453
查看次数

python中的条件if语句

我想将其存储在某个变量中,然后将其传递给'if'条件,而不是写出长'if'语句.例如:

tempvar = '1 >0 and 10 > 12'
if tempvar:
   print something
else:
     do something
Run Code Online (Sandbox Code Playgroud)

在python中有可能吗?

谢谢你的建议,但我的问题是别的,我无法弄清楚.我正在文本文件中进行多字符串搜索,并尝试将多字符串转换为一个条件:

    allspeciesfileter=['Homo sapiens', 'Mus musculus', 'Rattus norvegicus' ,'Sus scrofa']
    multiequerylist=[]

    if len(userprotein)> 0:
        multiequerylist.append("(str("+ "'"+userprotein+ "'"+")).lower() in (info[2].strip()).lower()")
    if len(useruniprotkb) >0:
        multiequerylist.append("(str("+ "'"+useruniprotkb+ "'"+")).lower() in (info[3].strip()).lower()")
    if len(userpepid) >0:
        multiequerylist.append("(str("+ "'"+userpepid+ "'"+")).lower() in (info[0].strip()).lower()")
    if len(userpepseq) >0:
        multiequerylist.append("(str("+ "'"+userpepseq+ "'"+")).lower() in (info[1].strip()).lower()")


    multiequery =' and '.join(multiequerylist)

    for line in pepfile:
        data=line.strip()
        info= data.split('\t')
        tempvar = bool (multiquery)
        if tempvar:
           do something
Run Code Online (Sandbox Code Playgroud)

但是那个多重查询不起作用

python python-2.7

1
推荐指数
1
解决办法
129
查看次数