小编min*_*nks的帖子

如何绘制混淆矩阵?

我正在使用scikit-learn将文本文档(22000)分类为100个类.我使用scikit-learn的混淆矩阵方法来计算混淆矩阵.

model1 = LogisticRegression()
model1 = model1.fit(matrix, labels)
pred = model1.predict(test_matrix)
cm=metrics.confusion_matrix(test_labels,pred)
print(cm)
plt.imshow(cm, cmap='binary')
Run Code Online (Sandbox Code Playgroud)

这就是我的混淆矩阵的样子:

[[3962  325    0 ...,    0    0    0]
 [ 250 2765    0 ...,    0    0    0]
 [   2    8   17 ...,    0    0    0]
 ..., 
 [   1    6    0 ...,    5    0    0]
 [   1    1    0 ...,    0    0    0]
 [   9    0    0 ...,    0    0    9]]
Run Code Online (Sandbox Code Playgroud)

但是,我没有收到明确或清晰的情节.有一个更好的方法吗?

python matplotlib matrix scikit-learn text-classification

51
推荐指数
3
解决办法
11万
查看次数

如何在python中计算列表的方差?

如果我有这样的列表:

results=[-14.82381293, -0.29423447, -13.56067979, -1.6288903, -0.31632439,
          0.53459687, -1.34069996, -1.61042692, -4.03220519, -0.24332097]
Run Code Online (Sandbox Code Playgroud)

我想在Python中计算这个列表的方差,这是与平均值的平方差的平均值.

我怎么能这样做?访问列表中的元素进行计算让我感到困惑,因为我得到了方差.

python statistics list variance

14
推荐指数
3
解决办法
6万
查看次数

我该如何处理巨大的矩阵?

我正在通过监督学习进行主题检测.但是,我的矩阵尺寸非常大(202180 x 15000),我无法将它们放入我想要的模型中.大多数矩阵由零组成.只有逻辑回归才有效.有没有办法让我可以继续使用相同的矩阵,但是让他们能够使用我想要的模型?我可以用不同的方式创建我的矩阵吗?

这是我的代码:

import numpy as np
import subprocess
from sklearn.linear_model import SGDClassifier
from sklearn.linear_model import LogisticRegression

from sklearn import metrics

def run(command):
    output = subprocess.check_output(command, shell=True)
    return output
Run Code Online (Sandbox Code Playgroud)

加载词汇

 f = open('/Users/win/Documents/wholedata/RightVo.txt','r')
    vocab_temp = f.read().split()
    f.close()
    col = len(vocab_temp)
    print("Training column size:")
    print(col)
Run Code Online (Sandbox Code Playgroud)

创建火车矩阵

row = run('cat '+'/Users/win/Documents/wholedata/X_tr.txt'+" | wc -l").split()[0]
print("Training row size:")
print(row)
matrix_tmp = np.zeros((int(row),col), dtype=np.int64)
print("Train Matrix size:")
print(matrix_tmp.size)

label_tmp = np.zeros((int(row)), dtype=np.int64)
f = open('/Users/win/Documents/wholedata/X_tr.txt','r')
count = 0
for line in …
Run Code Online (Sandbox Code Playgroud)

python machine-learning matrix

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

单词列表的词形还原

所以我在文本文件中有一个单词列表.我想对它们进行词形还原以删除具有相同含义但处于不同时态的词.喜欢尝试,试过等.当我这样做时,我不断收到类似TypeError的错误:不可用的类型:'list'

    results=[]
    with open('/Users/xyz/Documents/something5.txt', 'r') as f:
       for line in f:
          results.append(line.strip().split())

    lemma= WordNetLemmatizer()

    lem=[]

    for r in results:
       lem.append(lemma.lemmatize(r))

    with open("lem.txt","w") as t:
      for item in lem:
        print>>t, item
Run Code Online (Sandbox Code Playgroud)

如何将已经令牌的词语变形?

python nltk lemmatization

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

如何分析混淆矩阵?

当我打印出scikit-learn的混淆矩阵时,我收到一个非常庞大的矩阵.我想分析什么是真正的积极因素,真正的消极因素等.我该怎么办?这就是我的混淆矩阵的样子.我希望更好地理解这一点.

[[4015  336    0 ...,    0    0    2]
 [ 228 2704    0 ...,    0    0    0]
 [   4    7   19 ...,    0    0    0]
 ..., 
 [   3    2    0 ...,    5    0    0]
 [   1    1    0 ...,    0    0    0]
 [  13    1    0 ...,    0    0   11]]
Run Code Online (Sandbox Code Playgroud)

python matrix confusion-matrix scikit-learn

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

如何重命名列表中的标签?

我有这样的文件

301 my name is joe
303 whatsup
306 how are you doing today
308 what happened?
308 going home
309 let's go
Run Code Online (Sandbox Code Playgroud)

我想将标签转换301, 303, 306, 308, 308, 3091, 2, 3, 4, 4, 5

如何以这样的方式重命名这些标签,使类似的标签得到相同的数字?

python

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

在python中反转列表列表中的元素

我有一个 numpy 数组,其中包含前 2 个标签:

n =  [['20011' '20048']
     ['20011' '20048']
     ['20011' '20048']
     ['20011' '20048']]
Run Code Online (Sandbox Code Playgroud)

我想以相反的顺序获取它们:

[['20048' '20011']
 ['20048' '20011']
 ['20048' '20011']]
Run Code Online (Sandbox Code Playgroud)

我怎样才能在保持格式不变的情况下做到这一点?

到目前为止的代码:

n = model1.classes_[order[:,-5:]]
print(n)
r = [p[::-1] for p in n]
print(r)
Run Code Online (Sandbox Code Playgroud)

输出:

[array(['20048', '20011'], 
      dtype='|S5'), array(['20048', '20011'], 
      dtype='|S5'), array(['20048', '20011'], 
      dtype='|S5'), array(['20048', '20011'], 
      dtype='|S5')]
Run Code Online (Sandbox Code Playgroud)

需要尝试删除dtypes并仅保留反转数组。

python numpy list

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

如何计算唯一标签的出现次数?

我有一个包含如下标签的文档:

201
202
205
201
203
204
201
Run Code Online (Sandbox Code Playgroud)

如果我想计算每个标签出现的次数并将其打印出来,我该如何在Python中做到这一点?

我想要得到的是:

201: 3
202: 1
204: 1 
Run Code Online (Sandbox Code Playgroud)

python

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

如何将列表列表中的元素转换为小写?

我试图转换列表的小写列表的元素.这就是看起来像.

print(dataset)
[['It', 'went', 'Through', 'my', 'shirt', 'And', 'came', 'out', 'The', 'back', 'and', 'hit', 'the', 'kid', 'behind', 'me', 'in', 'the', 'toe']]
Run Code Online (Sandbox Code Playgroud)

我试过这样做:

for line in dataset:
    rt=[w.lower() for w in line]
Run Code Online (Sandbox Code Playgroud)

但是这给了我一个错误,说列表对象没有属性lower().

python

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

分类方法中的减少类是否提高了准确性?

我很想知道减少多级分类的监督分类模型(特别是Logistic回归)中的类数量是否有助于提高准确性.例如,如果我有10000个样本的50个类,我通过将某些类组合在一起将类的数量减少到30个.这会显着提高我的分类模型的准确性吗?

machine-learning

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

如何根据标签对句子进行分组?

如果我在一个文件中有一组句子,例如:

1 let's go shopping
1 what a wonderful day
1 let's party tonight
2 nobody went there
2 it was a deserted place
3 lets go tomorrow
4 what tomorrow
4 ok sure let's see
Run Code Online (Sandbox Code Playgroud)

我想把这些句子分组.就像属于标签'1'的所有句子应该在一个组中,而在'2'中的那些句子应该在另一组中.

所以我正在加载这样的文件:

result=[]
with open("sentences.txt","r") as filer:
    for line in filer:
        result.append(line.strip().split())
Run Code Online (Sandbox Code Playgroud)

所以我得到这样的东西:

[['1', 'let's',  'go',  'shopping'], 
['1', 'what',  'a',  'wonderful',  'day'],
['1', 'let's', 'party', 'tonight'],
['2', 'nobody', 'went', 'there']]
Run Code Online (Sandbox Code Playgroud)

现在我想要这样的东西:

for line in result:
    if line[0]== '1':
        process(line)
    elif line[0]=='2':
        process(line)
    elif line[0]=='4': …
Run Code Online (Sandbox Code Playgroud)

python

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