ML之NB、LoR:基于NB和LoR算法对Kaggle IMDB影评数据集(国外类似豆瓣电影)情感分析进行分类

简介: ML之NB、LoR:基于NB和LoR算法对Kaggle IMDB影评数据集(国外类似豆瓣电影)情感分析进行分类


目录

输出结果

核心代码


 

输出结果

数据集Dataset之IMDB影评数据集:IMDB影评数据集的简介、下载、使用方法之详细攻略

20180824111046566.gif

 

核心代码

1. #1、读取数据并做一些基本的预处理(比如说把评论部分的html标签去掉等等)
2. def review_to_wordlist(review):
3. '''
4.     把IMDB的评论转成词序列
5.     '''
6.     review_text = BeautifulSoup(review,"lxml").get_text()  # 去掉HTML标签,拿到内容
7.     review_text = re.sub("[^a-zA-Z]"," ", review_text)   # 用正则表达式取出符合规范的部分
8.     words = review_text.lower().split()   # 小写化所有的词,并转成词list
9. return words   # 返回words
10. 
11. # 使用pandas读入训练和测试csv文件
12. train = pd.read_csv('F:/File_Python/Resources/Kaggle Film critic emotion/labeledTrainData.tsv', header=0, delimiter="\t", quoting=3)
13. test = pd.read_csv('F:/File_Python/Resources/Kaggle Film critic emotion/testData.tsv', header=0, delimiter="\t", quoting=3 )
14. y_train = train['sentiment']  # 取出情感标签,positive/褒 或者 negative/贬
15. train_data = []               # 将训练和测试数据都转成词list
16. for i in range(0,len(train['review'])):
17.     train_data.append(" ".join(review_to_wordlist(train['review'][i])))
18. test_data = []
19. for i in range(0,len(test['review'])):
20.     test_data.append(" ".join(review_to_wordlist(test['review'][i])))
21. print(train_data)
22. print(y_train)
23. 
24. #2、特征处理:从数据里面拿到有区分度的特征,采用TF-IDF向量方法
25. from sklearn.feature_extraction.text import TfidfVectorizer as TFIV
26. # 初始化TFIV对象,去停用词,加2元语言模型
27. tfv = TFIV(min_df=3,  max_features=None, strip_accents='unicode', analyzer='word',token_pattern=r'\w{1,}', ngram_range=(1, 2), use_idf=1,smooth_idf=1,sublinear_tf=1, stop_words = 'english')
28. 
29. X_all = train_data + test_data  # 合并训练和测试集以便进行TFIDF向量化操作
30. len_train = len(train_data)
31. 
32. tfv.fit(X_all)    
33. X_all = tfv.transform(X_all)
34. 
35. X = X_all[:len_train]   # 恢复成训练集和测试集部分
36. X_test = X_all[len_train:]
37. 
38. 
39. # 3、利用NB算法,多项式朴素贝叶斯
40. from sklearn.naive_bayes import MultinomialNB as MNB
41. 
42. model_NB = MNB()
43. model_NB.fit(X, y_train) #特征数据直接灌进来
44. MNB(alpha=1.0, class_prior=None, fit_prior=True)
45. 
46. from sklearn.cross_validation import cross_val_score
47. import numpy as np
48. print ("多项式贝叶斯分类器20折交叉验证得分: ", np.mean(cross_val_score(model_NB, X, y_train, cv=20, scoring='roc_auc')))
49. 
50. 
51. 
52. #4、利用LoR算法
53. from sklearn.linear_model import LogisticRegression as LR
54. from sklearn.grid_search import GridSearchCV
55. 
56. # 设定grid search的参数
57. grid_values = {'C':[30]}  
58. # 设定打分为roc_auc
59. model_LR = GridSearchCV(LR(penalty = 'L2', dual = True, random_state = 0), grid_values, scoring = 'roc_auc', cv = 20) 
60. # 数据灌进来
61. model_LR.fit(X,y_train)
62. # 20折交叉验证,开始漫长的等待...
63. GridSearchCV(cv=20, estimator=LogisticRegression(C=1.0, class_weight=None, dual=True, 
64.              fit_intercept=True, intercept_scaling=1, penalty='L2', random_state=0, tol=0.0001),
65.         fit_params={}, iid=True, loss_func=None, n_jobs=1,
66.         param_grid={'C': [30]}, pre_dispatch='2*n_jobs', refit=True,
67.         score_func=None, scoring='roc_auc', verbose=0)
68. #输出结果
69. print (model_LR.grid_scores_)
70. 
71.

 


相关文章
|
4月前
|
机器学习/深度学习 人工智能 算法
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
文本分类识别系统。本系统使用Python作为主要开发语言,首先收集了10种中文文本数据集("体育类", "财经类", "房产类", "家居类", "教育类", "科技类", "时尚类", "时政类", "游戏类", "娱乐类"),然后基于TensorFlow搭建CNN卷积神经网络算法模型。通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型,并保存为本地的h5格式。然后使用Django开发Web网页端操作界面,实现用户上传一段文本识别其所属的类别。
130 1
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
|
3月前
|
存储 缓存 分布式计算
数据结构与算法学习一:学习前的准备,数据结构的分类,数据结构与算法的关系,实际编程中遇到的问题,几个经典算法问题
这篇文章是关于数据结构与算法的学习指南,涵盖了数据结构的分类、数据结构与算法的关系、实际编程中遇到的问题以及几个经典的算法面试题。
45 0
数据结构与算法学习一:学习前的准备,数据结构的分类,数据结构与算法的关系,实际编程中遇到的问题,几个经典算法问题
|
3月前
|
移动开发 算法 前端开发
前端常用算法全解:特征梳理、复杂度比较、分类解读与示例展示
前端常用算法全解:特征梳理、复杂度比较、分类解读与示例展示
42 0
|
4月前
|
机器学习/深度学习 算法 数据挖掘
决策树算法大揭秘:Python让你秒懂分支逻辑,精准分类不再难
【9月更文挑战第12天】决策树算法作为机器学习领域的一颗明珠,凭借其直观易懂和强大的解释能力,在分类与回归任务中表现出色。相比传统统计方法,决策树通过简单的分支逻辑实现了数据的精准分类。本文将借助Python和scikit-learn库,以鸢尾花数据集为例,展示如何使用决策树进行分类,并探讨其优势与局限。通过构建一系列条件判断,决策树不仅模拟了人类决策过程,还确保了结果的可追溯性和可解释性。无论您是新手还是专家,都能轻松上手,享受机器学习的乐趣。
60 9
|
5月前
|
存储 算法 安全
密码算法的分类
【8月更文挑战第23天】
233 0
|
6天前
|
算法 数据安全/隐私保护
室内障碍物射线追踪算法matlab模拟仿真
### 简介 本项目展示了室内障碍物射线追踪算法在无线通信中的应用。通过Matlab 2022a实现,包含完整程序运行效果(无水印),支持增加发射点和室内墙壁设置。核心代码配有详细中文注释及操作视频。该算法基于几何光学原理,模拟信号在复杂室内环境中的传播路径与强度,涵盖场景建模、射线发射、传播及接收点场强计算等步骤,为无线网络规划提供重要依据。
|
19天前
|
机器学习/深度学习 算法
基于改进遗传优化的BP神经网络金融序列预测算法matlab仿真
本项目基于改进遗传优化的BP神经网络进行金融序列预测,使用MATLAB2022A实现。通过对比BP神经网络、遗传优化BP神经网络及改进遗传优化BP神经网络,展示了三者的误差和预测曲线差异。核心程序结合遗传算法(GA)与BP神经网络,利用GA优化BP网络的初始权重和阈值,提高预测精度。GA通过选择、交叉、变异操作迭代优化,防止局部收敛,增强模型对金融市场复杂性和不确定性的适应能力。
154 80
|
7天前
|
机器学习/深度学习 数据采集 算法
基于GA遗传优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
本项目基于MATLAB2022a实现时间序列预测,采用CNN-GRU-SAM网络结构。卷积层提取局部特征,GRU层处理长期依赖,自注意力机制捕捉全局特征。完整代码含中文注释和操作视频,运行效果无水印展示。算法通过数据归一化、种群初始化、适应度计算、个体更新等步骤优化网络参数,最终输出预测结果。适用于金融市场、气象预报等领域。
基于GA遗传优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
|
7天前
|
算法
基于龙格库塔算法的锅炉单相受热管建模与matlab数值仿真
本设计基于龙格库塔算法对锅炉单相受热管进行建模与MATLAB数值仿真,简化为喷水减温器和末级过热器组合,考虑均匀传热及静态烟气处理。使用MATLAB2022A版本运行,展示自编与内置四阶龙格库塔法的精度对比及误差分析。模型涉及热传递和流体动力学原理,适用于优化锅炉效率。
|
5天前
|
移动开发 算法 计算机视觉
基于分块贝叶斯非局部均值优化(OBNLM)的图像去噪算法matlab仿真
本项目基于分块贝叶斯非局部均值优化(OBNLM)算法实现图像去噪,使用MATLAB2022A进行仿真。通过调整块大小和窗口大小等参数,研究其对去噪效果的影响。OBNLM结合了经典NLM算法与贝叶斯统计理论,利用块匹配和概率模型优化相似块的加权融合,提高去噪效率和保真度。实验展示了不同参数设置下的去噪结果,验证了算法的有效性。