gpt4 book ai didi

python - 使用随机森林对文本文档进行分类

转载 作者:太空狗 更新时间:2023-10-30 00:50:28 24 4
gpt4 key购买 nike

我有一组 4k 文本文档。他们属于 10 个不同的类别。我正在尝试查看随机森林方法如何执行分类。问题是我的特征提取类提取了 200k 个特征。(单词、二元组、搭配等的组合)这是高度稀疏的数据,sklearn 中的随机森林实现不适用于稀疏数据输入。

问。我在这里有什么选择?减少功能数量 ?如何 ?问:是否有任何适用于稀疏数组的随机森林实现。

我的相关代码如下:

import logging
import numpy as np
from optparse import OptionParser
import sys
from time import time
#import pylab as pl

from sklearn.datasets import load_files
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.ensemble import RandomForestClassifier
from special_analyzer import *


data_train = load_files(RAW_DATA_SRC_TR)
data_test = load_files(RAW_DATA_SRC_TS)
# split a training set and a test set
y_train, y_test = data_train.target, data_test.target

vectorizer = CountVectorizer( analyzer=SpecialAnalyzer()) # SpecialAnalyzer is my class extracting features from text
X_train = vectorizer.fit_transform(data_train.data)



rf = RandomForestClassifier(max_depth=10,max_features=10)
rf.fit(X_train,y_train)

最佳答案

几个选项:通过将 max_features=10000 传递给 CountVectorizer 并使用 to array 方法将结果转换为密集的 numpy 数组,仅获取最流行的 10000 个特征:

X_train_array = X_train.toarray()

否则将维度减少到 100 或 300 维:

pca = TruncatedSVD(n_components=300)
X_reduced_train = pca.fit_transform(X_train)

但是根据我的经验,在原始稀疏数据(可能使用 TF-IDF 归一化)上,我永远无法使 RF 比调整良好的线性模型(例如具有网格搜索正则化参数的逻辑回归)更好。

关于python - 使用随机森林对文本文档进行分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21689141/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com