老婆漂亮的程序员,鄙视老婆不漂亮的程序员。
有老婆的程序员,鄙视没有老婆的程序员。
没有老婆有女朋友的程序员,鄙视单身程序狗。
在单身狗之间,才有语言、编辑器和操作系统的互相鄙视。

import numpy as np
from time import time
import matplotlib.pyplot as plt
import matplotlib as mplfrom sklearn.datasets import fetch_20newsgroups#引入新闻数据包
from sklearn.feature_extraction.text import TfidfVectorizer#做tfidf编码
from sklearn.feature_selection import SelectKBest, chi2#卡方检验——特征筛选
from sklearn.linear_model import RidgeClassifier
from sklearn.svm import LinearSVC,SVC
from sklearn.naive_bayes import MultinomialNB, BernoulliNB #引入多项式和伯努利的贝叶斯
from sklearn.neighbors import KNeighborsClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import GridSearchCV
from sklearn import metrics
###  基准模型方法
def benchmark(clf,name):print (u'分类器:', clf)##  设置最优参数,并使用5折交叉验证获取最优参数值alpha_can = np.logspace(-2, 1, 10)model = GridSearchCV(clf, param_grid={'alpha': alpha_can}, cv=5)m = alpha_can.size## 如果模型有一个参数是alpha,进行设置if hasattr(clf, 'alpha'):model.set_params(param_grid={'alpha': alpha_can})m = alpha_can.size## 如果模型有一个k近邻的参数,进行设置if hasattr(clf, 'n_neighbors'):neighbors_can = np.arange(1, 15)model.set_params(param_grid={'n_neighbors': neighbors_can})m = neighbors_can.size## LinearSVC最优参数配置if hasattr(clf, 'C'):C_can = np.logspace(1, 3, 3)model.set_params(param_grid={'C':C_can})m = C_can.size## SVM最优参数设置if hasattr(clf, 'C') & hasattr(clf, 'gamma'):C_can = np.logspace(1, 3, 3)gamma_can = np.logspace(-3, 0, 3)model.set_params(param_grid={'C':C_can, 'gamma':gamma_can})m = C_can.size * gamma_can.size## 设置深度相关参数,决策树if hasattr(clf, 'max_depth'):max_depth_can = np.arange(4, 10)model.set_params(param_grid={'max_depth': max_depth_can})m = max_depth_can.size## 模型训练t_start = time()model.fit(x_train, y_train)t_end = time()t_train = (t_end - t_start) / (5*m)print (u'5折交叉验证的训练时间为:%.3f秒/(5*%d)=%.3f秒' % ((t_end - t_start), m, t_train))print (u'最优超参数为:', model.best_params_)## 模型预测t_start = time()y_hat = model.predict(x_test)t_end = time()t_test = t_end - t_startprint (u'测试时间:%.3f秒' % t_test)## 模型效果评估train_acc = metrics.accuracy_score(y_train, model.predict(x_train))test_acc = metrics.accuracy_score(y_test, y_hat)print (u'训练集准确率:%.2f%%' % (100 * train_acc))print (u'测试集准确率:%.2f%%' % (100 * test_acc))## 返回结果(训练时间耗时,预测数据耗时,训练数据错误率,测试数据错误率, 名称)return t_train, t_test, 1-train_acc, 1-test_acc, name
## 设置属性防止中文乱码
mpl.rcParams['font.sans-serif'] = [u'SimHei']
mpl.rcParams['axes.unicode_minus'] = False
## 数据加载
print (u'加载数据...')
t_start = time()
## 不要头部信息
remove = ('headers', 'footers', 'quotes')
## 只要这四类数据
categories = 'alt.atheism', 'talk.religion.misc', 'comp.graphics', 'sci.space'## 分别加载训练数据和测试数据
data_train = fetch_20newsgroups(data_home='./datas/',subset='train', categories=categories, shuffle=True, random_state=0, remove=remove)
data_test = fetch_20newsgroups(data_home='./datas/',subset='test', categories=categories, shuffle=True, random_state=0, remove=remove)## 完成
print (u"完成数据加载过程.耗时:%.3fs" % (time() - t_start))`

加载数据…
完成数据加载过程.耗时:5.247s

print(data_train.target_names)

[‘alt.atheism’, ‘comp.graphics’, ‘sci.space’, ‘talk.religion.misc’]

### 获取加载数据的相关信息
def size_mb(docs):return sum(len(s.encode('utf-8')) for s in docs) / 1e6categories = data_train.target_names
data_train_size_mb = size_mb(data_train.data)
data_test_size_mb = size_mb(data_test.data)print (u'数据类型:', type(data_train.data))
print("%d文本数量 - %0.3fMB (训练数据集)" % (len(data_train.data), data_train_size_mb))
print("%d文本数量 - %0.3fMB (测试数据集)" % (len(data_test.data), data_test_size_mb))
print (u'训练集和测试集使用的%d个类别的名称:' % len(categories))
print(categories)

数据类型: <class ‘list’>
2034文本数量 - 2.428MB (训练数据集)
1353文本数量 - 1.800MB (测试数据集)
训练集和测试集使用的4个类别的名称:
[‘alt.atheism’, ‘comp.graphics’, ‘sci.space’, ‘talk.religion.misc’]

### 数据重命名
x_train = data_train.data
y_train = data_train.target
x_test = data_test.data
y_test = data_test.target
### 输出前5个样本
print (u' -- 前5个文本 -- ')
for i in range(5):print (u'文本%d(属于类别 - %s):' % (i+1, categories[y_train[i]]))print (x_train[i])print ('\n\n')

输出前5个样本

print (u’ – 前5个文本 – ‘)
for i in range(5):
print (u’文本%d(属于类别 - %s):’ % (i+1, categories[y_train[i]]))
print (x_train[i])
print (’\n\n’)

输出前5个样本

print (u’ – 前5个文本 – ‘)
for i in range(5):
print (u’文本%d(属于类别 - %s):’ % (i+1, categories[y_train[i]]))
print (x_train[i])
print (’\n\n’)
– 前5个文本 –
文本1(属于类别 - alt.atheism):
If one is a vegan (a vegetarian taht eats no animal products at at i.e eggs,
milk, cheese, etc., after about 3 years of a vegan diet, you need to start
taking B12 supplements because b12 is found only in animals.) Acutally our
bodies make B12, I think, but our bodies use up our own B12 after 2 or 3
years.
Lacto-oveo vegetarians, like myself, still get B12 through milk products
and eggs, so we don’t need supplements.
And If anyone knows more, PLEASE post it. I’m nearly contridicting myself
with the mish-mash of knowledge I’ve gleaned.

文本2(属于类别 - comp.graphics):
Hi,
I have a friend who is working on 2-d and 3-d object recognition. He is looking
for references describing algorithms on the following subject areas:

Thresholding
Edge Segmentation
Marr-Hildreth
Sobel Operator
Chain Codes
Thinning - Skeletonising

If anybody is willing to post an algorithm that they have implemented which demonstrates
any of the above topics, it would be much appreciated.

Please post all replies to my e-mail address. If requested I will post a summary to the
newsgroup in a couple of weeks.

Thanks in advance for all replies

文本3(属于类别 - comp.graphics):
Hello netters

Sorry, I don’t know if this is the right way of doing this kind of thing,
probably should be a CFV, but since I don’t have tha ability to create a
news group myself, I just want to start the discussion.

I enjoy reading c.g very much, but I often find it difficult to sort out what
I’m interested in. Everything from screen-drivers, graphics cards, graphics
programming and graphics programs are discused here. What I’d like is a
comp.graphics.programmer news group.
What do you other think.

文本4(属于类别 - comp.graphics):

Yes, I did punch in the wrong numbers (working too many late nites). I
intended on stating 640x400 is 256,000 bytes. It’s not in the bios, just my
VESA TSR.

文本5(属于类别 - talk.religion.misc):

Well, I am not Andy, but if you had familiarized yourself with some of
the current theories/hypotheses about abiogenesis before posting

机器学习算法之贝叶斯算法 3、案例二:新闻数据分类相关推荐

  1. 机器学习实战---朴素贝叶斯算法实现+使用K折交叉验证(代码详解+创新)

    <机器学习实战朴素贝叶斯算法实现+使用K折交叉验证> 未经允许,不得擅自转载! 提供数据集如下(永久有效,需要的自行下载): 链接:https://pan.baidu.com/s/1Sv0 ...

  2. 朴素贝叶斯 php,PHP实现机器学习之朴素贝叶斯算法详解.pdf

    PHP实实现现机机器器学学习习之之朴朴素素贝贝叶叶斯斯算算法法详详解解 本文实例讲述了PHP实现机器学习之朴素贝叶斯算法.分享给大家供大家参考 具体如下: 机器学习已经在我们的生活中变得随处可见了.比 ...

  3. python人工智能——机器学习——分类算法-朴素贝叶斯算法对新闻进行分类案例

    朴素贝叶斯案例流程 1.加载20类新闻数据,并进行分割 2.生成文章特征词 3.朴素贝叶斯estimator流程进行预估 代码 from sklearn.datasets import fetch_2 ...

  4. 机器学习算法之贝叶斯算法 2、案例一:鸢尾花数据分类

    贝叶斯原理是怎么来的呢?贝叶斯为了解决一个叫"逆向概率"问题写了一篇文章,尝试解答在没有太多可靠证据的情况下,怎样做出更符合数学逻辑的推测. 什么是"逆向概率" ...

  5. 机器学习算法: 朴素贝叶斯算法

    朴素贝叶斯算法原理简述 理解朴素贝叶斯算法之前, 先应该理解什么是条件概率. 条件概率是指, 在事件A已经发生的情况下, 事件B发生的概率. 数学符号记作P(A|B). 机器学习就是利用这个原理, 对 ...

  6. 机器学习之朴素贝叶斯算法

    作者:RayChiu_Labloy 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 目录 贝叶斯公式与朴素贝叶斯算法 贝叶斯公式推导 用机器学习的视角理解贝叶斯公式 NB ...

  7. 【机器学习】朴素贝叶斯算法

    朴素贝叶斯(Naive Bayes)是经典的机器学习算法之一,也是为数不多的基于概率论的分类算法.由于朴素贝叶斯计算联合概率,所以朴素贝叶斯模型属于生成式模型.经典应用案例包括:文本分类.垃圾邮件过滤 ...

  8. 机器学习基础 朴素贝叶斯算法

    文章目录 一. 朴素贝叶斯算法简介 二.概率基础复习 1.概率定义 2.案例:判断女神对你的喜欢情况 3.联合概率.条件概率与相互独立 4.贝叶斯公式 4.1 公式介绍 4.2 案例计算 4.3 文章 ...

  9. matlab算法用python做_机器学习笔记—朴素贝叶斯算法实现(matlab/python)

    原理知道一百遍不如自己动手写一遍,当然,现在基本上不需要自己来写算法的底层code了,各路大神们已经为我等凡夫俗子写好了,直接调用就行. 这里介绍在MATLAB中和Python中应用贝叶斯算法的小例子 ...

  10. 机器学习之朴素贝叶斯算法原理+Python实现

    朴素贝叶斯 1.简介 ​ 贝叶斯分类算法是统计学中的一种概率分类方法,朴素贝叶斯分类是贝叶斯分类中最简单的一种.其分类原理就是利用贝叶斯公式根据某特征的先验概率计算出其后验概率,然后选择具有最大后验概 ...

最新文章

  1. python实现迭代的快速排序(Iterative Quick Sort)
  2. 非常方便的node内置的调试方法
  3. 由 Session 和 Cookie 的区别说起
  4. SQL语句之Insert
  5. web编程 端口分配_以编程方式衡量分配
  6. Qt 调用Python引擎混合编程
  7. 【飞控理论】从零开始学习Kalman Filters之四:卡尔曼滤波C语言代码实现
  8. html 怎么设置时间函数,JavaScript日期函数 - 计时器、innerHTML
  9. 苹果手表Apple Watch 无法检查更新 iOS14.5 14.6 14.7
  10. 元素定位163邮箱账号密码输入框问题,iframe嵌套
  11. 手机丢了不可怕,手机卡丢了才最可怕!
  12. GD32篇 一、GD32程序设置读保护,防止程序被读取
  13. Serverlet简介及理解
  14. 力扣 2303. 计算应缴税款总额
  15. 银行ATM存取款页面简易版练习(python)
  16. python tkinter编写界面,使用win32com操作excel获取数据生成截图后,wxpy登录微信,给租客发送房租(三)
  17. 使用ARCHPR明文攻击爆破压缩包
  18. 12 | 理解电路:从电报机到门电路,我们如何做到“千里传信”?
  19. 如何做一个网页送给女朋友做生日礼物
  20. 两个案例带你了解 cookie 和 SSL(开心网 jobbole)

热门文章

  1. mysql 查询本年当前季度数据 ,SQL查询当前季度的数据
  2. 【Python实用API】文本转语音库-pyttsx3
  3. vue 字典配置_vue 字典
  4. 使用log4j2,控制台可以正常输出日志,但是log4j2日志文件为空?
  5. Oracle入门--水表项目(单表查询,链接查询,左右外连接,子查询,分页查询)(3)
  6. 【牛客刷题--SQL篇】高级查询之SQL16查找GPA最高值(多种写法)SQL17计算男生人数以及平均GPA
  7. 动软代码生成器之 模板功能介绍
  8. windows中oracle自动备份
  9. java gui切换面板,Java GUI,根据actionListener更改面板
  10. php支付宝wap支付详解,alipay_wap