这个代码基于上一个代码

不同的是:读取了txt文件,改变了min_ft与max_ft的参数

  1. import re
  2. import pandas as pd
  3. import warnings
  4. import numpy as np
  5. from sklearn.metrics import roc_auc_score
  6. from sklearn.feature_extraction.text import TfidfVectorizer
  7. from sklearn.naive_bayes import MultinomialNB as MNB #多项分布朴素贝叶斯公式
  8. from sklearn.naive_bayes import BernoulliNB as BNB
  9. from sklearn.model_selection import cross_val_score
  10. warnings.filterwarnings("ignore")
  11. def proces(col2):
  12. col2_text=re.sub("[^a-zA-Z]"," ",col2)
  13. words=col2_text.lower().split()
  14. #print(words)
  15. return words
  16. train=pd.read_table('sentimentLabel.txt',lineterminator='\n', header=None, names=[0, 1])
  17. print(train.head(5))
  18. train_labers=train[0]
  19. train_texts=train[1]
  20. class_mapping={'Negative':0, 'Positive':1}
  21. train_labers=train_labers.map(class_mapping)
  22. #print(labers)
  23.  
  24. test=pd.read_table('test.txt', lineterminator='\n', header=None, names=[0, 1])
  25. test_labers=test[0]
  26. test_texts=test[1]
  27. test_labers=test_labers.map(class_mapping)
  28.  
  29. train_data=[]
  30. for i in range(len(train_texts)):
  31. train_data.append(' '.join(proces(train_texts[i])))
  32. pass
  33. test_data=[]
  34. for i in range(len(test_texts)):
  35. test_data.append(' '.join(proces(test_texts[i])))
  36. #print(train_data)
  37. #print(test_data)
  38. data_all = train_data+test_data
  39. #print(data_all)
  40. count_vec = TfidfVectorizer(min_df=1,
  41. max_df=60,
  42. analyzer='word',
  43. ngram_range=(1, 2),
  44. use_idf=1,
  45. smooth_idf=1,
  46. sublinear_tf=1,
  47. stop_words='english'
  48. )
  49. length=len(train_data)
  50. count_vec.fit(data_all)
  51. data_all=count_vec.transform(data_all)
  52. #print(data_all)
  53. train_data=data_all[:length]
  54. test_data=data_all[length:]
  55.  
  56. model=MNB()
  57. #model=BNB()
  58. model.fit(train_data,train_labers)
  59. #pred=model.predict(test_data)
  60. MNB(alpha=1.0, class_prior=False, fit_prior=True)
  61. #print("roc_auc",roc_auc_score(test_labers, pred))
  62. #print("roc_auc",roc_auc_score(w, pred))
  63. '''
  64. MX = 0.7996632996632996
  65. MX_idx = 5
  66. for i in range(400, 500):
  67. if MX < np.mean(cross_val_score(model, train_data, train_labers, cv=i, scoring='roc_auc')):
  68. MX=np.mean(cross_val_score(model, train_data, train_labers, cv=i, scoring='roc_auc'))
  69. MX_idx=i
  70. pass
  71. print("roc_auc",MX, MX_idx)
  72. '''
  73. print("roc_auc", np.mean(cross_val_score(model, train_data, train_labers, cv=297, scoring='roc_auc')))

朴素贝叶斯分类器基本代码 && n折交叉优化 2的更多相关文章

  1. 朴素贝叶斯分类器基本代码 && n折交叉优化

    自己也是刚刚入门.. 没脸把自己的代码放上去,先用别人的. 加上自己的解析,挺全面的,希望有用. import re import pandas as pd import numpy as np fr ...

  2. 记intel杯比赛中各种bug与debug【其五】:朴素贝叶斯分类器的实现和针对性的优化

    咱这个项目最主要的就是这个了 贝叶斯分类器用于做可以统计概率的二元分类 典型的例子就是垃圾邮件过滤 理论基础 对于贝叶斯算法,这里附上两个链接,便于理解: 朴素贝叶斯分类器的应用-阮一峰的网络日志 基 ...

  3. 文本分类(TFIDF/朴素贝叶斯分类器/TextRNN/TextCNN/TextRCNN/FastText/HAN)

    目录 简介 TFIDF 朴素贝叶斯分类器 贝叶斯公式 贝叶斯决策论的理解 极大似然估计 朴素贝叶斯分类器 TextRNN TextCNN TextRCNN FastText HAN Highway N ...

  4. 数据挖掘十大经典算法(9) 朴素贝叶斯分类器 Naive Bayes

    贝叶斯分类器 贝叶斯分类器的分类原理是通过某对象的先验概率,利用贝叶斯公式计算出其后验概率,即该对象属于某一类的概率,选择具有最大后验概率的类作为该对象所属的类.眼下研究较多的贝叶斯分类器主要有四种, ...

  5. 用scikit-learn实现朴素贝叶斯分类器 转

    原文:http://segmentfault.com/a/1190000002472791 朴素贝叶斯(Naive Bayes Classifier)是一种「天真」的算法(假定所有特征发生概率是独立的 ...

  6. 十大经典数据挖掘算法(9) 朴素贝叶斯分类器 Naive Bayes

    贝叶斯分类器 贝叶斯分类分类原则是一个对象的通过先验概率.贝叶斯后验概率公式后计算,也就是说,该对象属于一类的概率.选择具有最大后验概率的类作为对象的类属.现在更多的研究贝叶斯分类器,有四个,每间:N ...

  7. 机器学习---朴素贝叶斯分类器(Machine Learning Naive Bayes Classifier)

    朴素贝叶斯分类器是一组简单快速的分类算法.网上已经有很多文章介绍,比如这篇写得比较好:https://blog.csdn.net/sinat_36246371/article/details/6014 ...

  8. 朴素贝叶斯分类器及Python实现

    贝叶斯定理 贝叶斯定理是通过对观测值概率分布的主观判断(即先验概率)进行修正的定理,在概率论中具有重要地位. 先验概率分布(边缘概率)是指基于主观判断而非样本分布的概率分布,后验概率(条件概率)是根据 ...

  9. 朴素贝叶斯分类器(Naive Bayes)

    1. 贝叶斯定理 如果有两个事件,事件A和事件B.已知事件A发生的概率为p(A),事件B发生的概率为P(B),事件A发生的前提下.事件B发生的概率为p(B|A),事件B发生的前提下.事件A发生的概率为 ...

随机推荐

  1. 深入浅出ReentrantLock源码解析

    ReentrantLock不但是可重入锁,而且还是公平或非公平锁,在工作中会经常使用到,将自己对这两种锁的理解记录下来,希望对大家有帮助. 前提条件 在理解ReentrantLock时需要具备一些基本 ...

  2. GPO - Backup and Restore

    Backup the GPO to a second server is very important. Restore a GPO if necessary. Note: WMI filter an ...

  3. OSCP Learning Notes - WebApp Exploitation(5)

    Remote File Inclusion[RFI] Prepare: Download the DVWA from the following website and deploy it on yo ...

  4. 【C#】NET截屏网页,生成网页快照开发——IECapt、CutyCapt

    软件介绍 IECapt.CutyCapt 生成网页快照 http://iecapt.sourceforge.net/ http://cutycapt.sourceforge.net/ ### 操作代码 ...

  5. 部署一套完整的Kubernetes高可用集群(二进制,v1.18版)

    一.前置知识点 1.1 生产环境可部署Kubernetes集群的两种方式 目前生产部署Kubernetes集群主要有两种方式: kubeadm Kubeadm是一个K8s部署工具,提供kubeadm ...

  6. APP自动化 -- MobileBy

    一.BobileBy源码 selenium中有 By appium就有MobileBy. 二.MobileBy示例 MobileBy就是继承的By,所以,语法基本是一样的.

  7. springboot文件上传 流的方式 后台计算上传进度

    //代码 public static void main(String[] args) throws Exception { String path = "f:/svn/t_dictiona ...

  8. 企业权限管理(SSM整合)(总结)

    学于黑马程序员和传智播客联合做的教学项目 感谢 黑马程序员官网 传智播客官网 个人根据教程的每天的工作进度的代码和资料 密码:cti5 b站在线视频 微信搜索"艺术行者",关注并回 ...

  9. Python os.lchflags() 方法

    概述 os.lchflags() 方法用于设置路径的标记为数字标记,类似 chflags(),但是没有软链接.高佣联盟 www.cgewang.com 只支持在 Unix 下使用. 语法 lchfla ...

  10. PHP is_uploaded_file() 函数

    定义和用法 is_uploaded_file() 函数检查指定的文件是否是通过 HTTP POST 上传的. 如果文件是通过 HTTP POST 上传的,该函数返回 TRUE. 语法 is_uploa ...