-
切分大文件:
few_data = df_train[df_train.id<10000]
few_data.to_csv(“D:\pythontest\new_data\few_data.csv”,index=False) -
TfidfVectorizer
https://blog.youkuaiyun.com/laobai1015/article/details/80451371 参数博客
1.transform之后生成的对象为scipy.sparse.csr.csr_matrix,这是个压缩的稀疏矩阵,想查看内容使用print()进行查看。稀疏矩阵是由行号列号元素值描述。(单词出现的文章所在的位置,出现的词语在词汇表中代号) 逆文档频率
2. .vectorizer.vocabulary_打印出来是词汇表及词汇编号 字典形式
3. get_feature_names() 返回全部词汇 列表形式
4.参数 token_pattern=r"(?u)\b\w+\b")可以让抓取单个汉字,否则默认只抓两字节以上。
5.fit_transform传入的应该是文本所在的列而不是整个df
6.CountVectorizer只考虑每种词汇在该训练文本中出现的频率,而TfidfVectorizer除了考量某一词汇在当前训练文本中出现的频率之外,同时关注包含这个词汇的其它训练文本数目的倒数。 -
Doc2Vec:
1.我们需要用xx.strip().split()构建一个函数来剔除句子中的空格和换行符
2.对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值,我们用这个enumerate来获得 -
代码流程
1.读取数据集,把数据集从两个不同属性上分为两个数据集,每个数据集都有一个内容的属性和一个类别的属性,我们将分别处理这两个数据集并将他们合并。
2.利用sklearn.feature_extraction.text包中的TfidfVectorizer生成tfidf特征。此特征可用于生成数据集的lsa(隐含语义分析)特征,生成lsa的包为sklearn.decomposition中的TruncateSVD(截断奇异值分解)。
3.利用sklearn.feature_extraction.text包中的CountVectorizer生成tf特征。此特征可用于生成数据集的lda(潜在狄利克雷分布)特征,生成lda的包为sklearn.decomposion中的LatentDirichletAllocation。
4.通过np.concatenate((x_train1_lsa,x_train1_lda),axis = 1)可以将两个甚至更多特征合并,生成一个特征性更强的数据集,然后使用LinearSVC进一步处理。 -
LinearSVC
https://www.cnblogs.com/pinard/p/6117515.html 资料地址 -
numpy一些函数:
bincount(x)输出array,若x最大值为m则生成0-m个结果,每个结果是那个数在x中出现的次数,没出现过值是0。
argmax(x,axis=0) 取出x中最大值所对应的索引值。axis值为0则取列方向最大值,为1取行方向最大值。
嵌套使用 result_vote = np.argmax(np.bincount(pred)) 则输出pred中 预测值重复最多的那个值的索引值 -
关于交叉验证
from sklearn.model_selection import StratifiedKFold
skf = StratifiedKFold(n_splits=5,random_state=1) 其中n_splits为把数据集分成n份,留一份作为验证,其他n-1份作为训练集,因此会执行n次。random_state为随机数种子 -
评估分数
from sklearn.metrics import f1_score
score_vali = f1_score(y_true =f_vali_y,y_pred = pre_vali,average = ‘macro’)
参数:y_true 每一轮正确的目标值,y_pred每一轮预测的目标值,average =‘macro’计算每个标签的指标,找出它们的未加权平均值。这不会考虑标签不平衡。
交叉验证中就要输出评估分数来反应验证效果, Fb的物理意义就是将准确率和召回率这两个分值合并为一个分值,在合并的过程中,召回率的权重是准确率的 b倍。准确率:预测对/全部样本 ,召回率:预测对中正样本/所有正样本
-
关于类型
dataframe类型对某一列进行加减等运算后,生成的类型为Series数组。对series数组取点values则生成numpy.ndarray.