项目实践之文本分类实例
采用20Newgroups的数据。数据集分为两部分,一部分用来训练模型,一部分是用来评估算法的新数据。这里采用20news-bydate数据集进行项目研究,这个数据集是按照日期进行排序的,并去掉了部分重复数据和header。
使用scikit-learn的loadfiles导入文档数据。利用机器学习对文本进行分类,与对数值特征进行分类最大的区别是,对文本进行分类时要先提取文本特征,提取到的文本特征属性是巨大的,有时会超过万个的特征属性。
rom sklearn.feature_extraction.text import CountVectorizer
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.linear_model import LogisticRegression
from sklearn.naive_bayes import MultinomialNB
from sklearn.neighbors import KNeighborsClassifier
from sklearn.svm import SVC
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import classification_report
from sklearn.metrics import accuracy_score
from sklearn.model_selection import cross_val_score
from sklearn.model_selection import KFold
from sklearn.model_selection import GridSearchCV
from sklearn.ensemble import AdaBoostClassifier
from sklearn.ensemble import RandomForestClassifier
from matplotlib import pyplot as plt
# 1) 导入数据
categories = ['alt.atheism',
'rec.sport.hockey',
'comp.graphics',
'sci.crypt',
'comp.os.ms-windows.misc',
'sci.electronics',
'comp.sys.ibm.pc.hardware',
'sci.med',
'comp.sys.mac.hardware',
'sci.space',
'comp.windows.x',