【问题标题】:How to splice sparse matrices randomly for machine learning classification如何随机拼接稀疏矩阵进行机器学习分类
【发布时间】:2016-02-09 13:23:09
【问题描述】:

我正在处理一项使用稀疏矩阵的机器学习任务(具体来说,如果您熟悉的话,是 20 个新闻组)。这是我到目前为止所做的:

import numpy as np
import numpy as np
import scipy as sp
import matplotlib.pyplot as plt
import re
from random import shuffle

from sklearn.datasets import fetch_20newsgroups
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.feature_extraction.text import TfidfTransformer
from sklearn.svm import SVC, LinearSVC

dataset = fetch_20newsgroups(subset='train')
transformer = CountVectorizer().fit(dataset.data)
tfidf_transformer = TfidfTransformer()

def preprocess(data):
    sparse_data = transformer.transform(data)
    training_data = tfidf_transformer.fit_transform(sparse_data)
    return training_data


def predict():
    data = preprocess(dataset.data)
    target = dataset.target
    print(data)
    model = LinearSVC().fit(data, target)
    return model
testset=fetch_20newsgroups(subset='test')
data2=preprocess(testset.data)
predicted=predict().predict(data2)
print(np.mean(predicted == testset.target)) 

所以,我在整个训练数据集上进行了训练,然后我使用我的分类器对测试数据进行了分类,这打印出了 88% 的准确率。但是,我应该在 80% 的训练数据上进行训练,并在其余的训练数据上测试我的分类器,然后我的教练将使用测试数据检查我的代码。所以,我必须将训练数据随机分成两组,因为数据是有序的,所以前 80% 的训练会导致分类器错误;另外,虽然我随机划分我的训练数据,我也必须相应地划分我的训练目标。我该怎么做呢?

【问题讨论】:

    标签: python-2.7 machine-learning scikit-learn sparse-matrix scikits


    【解决方案1】:

    要将训练数据随机分成两组,您可以使用sklearn.cross_validation.train_test_split。这是您正在寻找的代码:

    from sklearn.cross_validation import train_test_split
    
    X_train, X_test, y_train, y_test = train_test_split(dataset.data, dataset.target,
                                                        train_size=0.8, random_state=0)
    
    print("Train size: {0}".format(len(X_train)))
    print("Test size: {0}".format(len(X_test)))
    

    输出是:

    Train size: 9051
    Test size: 2263
    

    希望对你有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-14
      • 2012-11-09
      • 1970-01-01
      • 1970-01-01
      • 2015-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多