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

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

输出结果

数据集:https://blog.csdn.net/qq_41185868/article/details/88408004

image.png

核心代码

#1、读取数据并做一些基本的预处理(比如说把评论部分的html标签去掉等等)

def review_to_wordlist(review):

   '''

   把IMDB的评论转成词序列

   '''

   review_text = BeautifulSoup(review,"lxml").get_text()  # 去掉HTML标签,拿到内容

   review_text = re.sub("[^a-zA-Z]"," ", review_text)   # 用正则表达式取出符合规范的部分

   words = review_text.lower().split()   # 小写化所有的词,并转成词list

   return words   # 返回words

# 使用pandas读入训练和测试csv文件

train = pd.read_csv('F:/File_Python/Resources/Kaggle Film critic emotion/labeledTrainData.tsv', header=0, delimiter="\t", quoting=3)

test = pd.read_csv('F:/File_Python/Resources/Kaggle Film critic emotion/testData.tsv', header=0, delimiter="\t", quoting=3 )

y_train = train['sentiment']  # 取出情感标签,positive/褒 或者 negative/贬

train_data = []               # 将训练和测试数据都转成词list

for i in range(0,len(train['review'])):

   train_data.append(" ".join(review_to_wordlist(train['review'][i])))

test_data = []

for i in range(0,len(test['review'])):

   test_data.append(" ".join(review_to_wordlist(test['review'][i])))

print(train_data)

print(y_train)

#2、特征处理:从数据里面拿到有区分度的特征,采用TF-IDF向量方法

from sklearn.feature_extraction.text import TfidfVectorizer as TFIV

# 初始化TFIV对象,去停用词,加2元语言模型

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')

X_all = train_data + test_data  # 合并训练和测试集以便进行TFIDF向量化操作

len_train = len(train_data)

tfv.fit(X_all)    

X_all = tfv.transform(X_all)

X = X_all[:len_train]   # 恢复成训练集和测试集部分

X_test = X_all[len_train:]

# 3、利用NB算法,多项式朴素贝叶斯

from sklearn.naive_bayes import MultinomialNB as MNB

model_NB = MNB()

model_NB.fit(X, y_train) #特征数据直接灌进来

MNB(alpha=1.0, class_prior=None, fit_prior=True)

from sklearn.cross_validation import cross_val_score

import numpy as np

print ("多项式贝叶斯分类器20折交叉验证得分: ", np.mean(cross_val_score(model_NB, X, y_train, cv=20, scoring='roc_auc')))

#4、利用LoR算法

from sklearn.linear_model import LogisticRegression as LR

from sklearn.grid_search import GridSearchCV

# 设定grid search的参数

grid_values = {'C':[30]}  

# 设定打分为roc_auc

model_LR = GridSearchCV(LR(penalty = 'L2', dual = True, random_state = 0), grid_values, scoring = 'roc_auc', cv = 20)

# 数据灌进来

model_LR.fit(X,y_train)

# 20折交叉验证,开始漫长的等待...

GridSearchCV(cv=20, estimator=LogisticRegression(C=1.0, class_weight=None, dual=True,

            fit_intercept=True, intercept_scaling=1, penalty='L2', random_state=0, tol=0.0001),

       fit_params={}, iid=True, loss_func=None, n_jobs=1,

       param_grid={'C': [30]}, pre_dispatch='2*n_jobs', refit=True,

       score_func=None, scoring='roc_auc', verbose=0)

#输出结果

print (model_LR.grid_scores_)


相关文章
|
10月前
|
机器学习/深度学习 算法 数据挖掘
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构。本文介绍了K-means算法的基本原理,包括初始化、数据点分配与簇中心更新等步骤,以及如何在Python中实现该算法,最后讨论了其优缺点及应用场景。
958 6
|
8月前
|
机器学习/深度学习 算法 数据可视化
利用SVM(支持向量机)分类算法对鸢尾花数据集进行分类
本文介绍了如何使用支持向量机(SVM)算法对鸢尾花数据集进行分类。作者通过Python的sklearn库加载数据,并利用pandas、matplotlib等工具进行数据分析和可视化。
622 70
|
存储 算法 Java
Java数据结构与算法:用于高效地存储和检索字符串数据集
Java数据结构与算法:用于高效地存储和检索字符串数据集
|
22天前
|
机器学习/深度学习 算法 数据挖掘
没发论文的注意啦!重磅更新!GWO-BP-AdaBoost预测!灰狼优化、人工神经网络与AdaBoost集成学习算法预测研究(Matlab代码实现)
没发论文的注意啦!重磅更新!GWO-BP-AdaBoost预测!灰狼优化、人工神经网络与AdaBoost集成学习算法预测研究(Matlab代码实现)
|
17天前
|
机器学习/深度学习 算法 新能源
【优化调度】基于matlab粒子群算法求解水火电经济调度优化问题研究(Matlab代码实现)
【优化调度】基于matlab粒子群算法求解水火电经济调度优化问题研究(Matlab代码实现)
|
19天前
|
算法 机器人 定位技术
基于机器视觉和Dijkstra算法的平面建筑群地图路线规划matlab仿真
本程序基于机器视觉与Dijkstra算法,实现平面建筑群地图的路径规划。通过MATLAB 2022A读取地图图像,识别障碍物并进行路径搜索,支持鼠标选择起点与终点,最终显示最优路径及长度,适用于智能导航与机器人路径规划场景。
|
20天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于PSO粒子群优化的XGBoost时间序列预测算法matlab仿真
本程序基于Matlab 2024b实现,结合粒子群优化(PSO)与XGBoost算法,用于时间序列预测。通过PSO优化XGBoost超参数,提升预测精度。程序包含完整注释与操作视频,运行后生成预测效果图及性能评估指标RMSE。
|
17天前
|
传感器 并行计算 算法
【无人机编队】基于非支配排序遗传算法II NSGA-II高效可行的无人机离线集群仿真研究(Matlab代码实现)
【无人机编队】基于非支配排序遗传算法II NSGA-II高效可行的无人机离线集群仿真研究(Matlab代码实现)
|
17天前
|
存储 算法 安全
【无人机】基于灰狼优化算法的无人机路径规划问题研究(Matlab代码实现)
【无人机】基于灰狼优化算法的无人机路径规划问题研究(Matlab代码实现)
108 0
|
17天前
|
机器学习/深度学习 传感器 数据采集
【23年新算法】基于鱼鹰算法OOA-Transformer-BiLSTM多特征分类预测附Matlab代码 (多输入单输出)(Matlab代码实现)
【23年新算法】基于鱼鹰算法OOA-Transformer-BiLSTM多特征分类预测附Matlab代码 (多输入单输出)(Matlab代码实现)

热门文章

最新文章