Python垃圾邮件的逻辑回归分类示例详解
作者:K_C_of 发布时间:2021-02-21 04:21:00
标签:python,垃圾邮件,分类
加载垃圾邮件数据集spambase.csv(数据集基本信息:样本数: 4601,特征数量: 57, 类别:
1 为垃圾邮件,0 为非垃圾邮件),阅读并理解数据。
按以下要求处理数据集
(1)分离出仅含特征列的部分作为 X 和仅含目标列的部分作为 Y。
(2)将数据集拆分成训练集和测试集(70%和 30%)。
建立逻辑回归模型
分别用 LogisticRegression 建模。
结果比对
(1)输出测试集前 5 个样本的预测结果。
(2)计算模型在测试集上的分类准确率(=正确分类样本数/测试集总样本数)
(3)从测试集中找出模型不能正确预测的样本。
(4)对参数 penalty 分别取‘l1', ‘l2', ‘elasticnet', ‘none',对比它们在测试集上的预测性能(计算 score)。
拆分特征值和目标数据前面已经可知,预测和模型得分结果也是直接使用模型的方法,下面主要是要测试准确率和找出不能正确预测的样本,以及不同的惩罚下的模型得分,主要运用到Numpy模块和列表list的函数,代码如下:
y_train_pred = model.predict(x_train)
# In[26]:
train_accu = np.equal(y_train,y_train_pred)
print(y_train.shape,y_train_pred.shape)
# In[27]:
#计算模型在测试集上的分类准确率(=正确分类样本数/测试集总样本数)
accuracy = list(train_accu).count(True)/len(list(y_train))
print("准确率为"+"%f"%float(accuracy*100)+"%")
# In[28]:
#从测试集中找出模型不能正确预测的样本。
test_accu = list(np.equal(y_pred,y_test))
i = 0
len_test = len(test_accu)
False_index = []
[False_index.append(i) for i in range(0,len_test) if test_accu[i]==False]
print(x_test[False_index])
# In[29]:
#对参数 penalty 分别取‘l1', ‘l2', ‘elasticnet', ‘none',对比它们在测试集上的预测性能(计算 score)。
model2 = LogisticRegression(multi_class='ovr',penalty='l1',max_iter=10000,solver='saga').fit(x_train, y_train)
print("penalty='l1'"+'的得分:', model2.score(x_test, y_test))
# In[33]:
#对参数 penalty 分别取‘l1', ‘l2', ‘elasticnet', ‘none',对比它们在测试集上的预测性能(计算 score)。
model2 = LogisticRegression(multi_class='ovr',penalty='l2',max_iter=10000).fit(x_train, y_train)
print("penalty='l2'"+'的得分:', model2.score(x_test, y_test))
# In[31]:
model4 = LogisticRegression(multi_class='ovr',penalty='elasticnet',max_iter=10000,solver='saga',l1_ratio=0).fit(x_train, y_train)
#模型建立产生一些参数的问题一般都是sklearn的版本问题,要是忽略,就升级更新一下版本就好了solver指定penalty参数的范围
print("penalty='elasticnet'"+'的得分:', model4.score(x_test, y_test))
# In[32]:
model5 = LogisticRegression(multi_class='ovr',penalty='none',max_iter=10000,solver='lbfgs').fit(x_train, y_train)
print("penalty='none'"+'的得分:', model5.score(x_test, y_test))
来源:https://blog.csdn.net/missionnn/article/details/121575688
0
投稿
猜你喜欢
- 1. python-firepython-fire 是一个三方库,可以将任何 Python 对象变成一个命令行接口。使用前先 pip ins
- 本文实例讲述了Python查找数组中数值和下标相等的元素。分享给大家供大家参考,具体如下:题目描述:假设一个单调递增的数组中的每个元素都是整
- PHP convert_cyr_string() 函数实例把字符串由一种字符集转换成另一种:<?php $str = "He
- 1|0使用yield完成多任务import timedef test1(): while True: print("-
- 在读取https://github.com/Embedding/Chinese-Word-Vectors中的中文词向量时,选择了一个有3G多
- 前言对程序员来说,‘python’ 和’python ’看起
- 讲这个方法之前,我们应该先了解下插入节点时浏览器会做什么。在浏览器中,我们一旦把节点添加到document.body(或者其他节点)中,页面
- A:西米喜欢健身B:超超不爱健身,喜欢打游戏step1:分词A:西米/喜欢/健身B:超超/不/喜欢/健身,喜欢/打/游戏step2:列出两个
- 1998年,W3C发布HTML 4.0 Specification,里面清清楚楚的写了每个标签的用法和语义。搜索引擎的算法参考了W3C的语义
- 对于网站设计者而言,时常处理大批量的文件是难免的,特别是图片和一些文本文本文件,更是经常处理。而由于网站大量文件的关系,对于同类
- 大家好,我是小五前一阵给大家分享了,Python如何给图片加水印。评论区就有小伙伴问,可不可使用Python去除图片水印的方法呢?这个肯定有
- 1.网络爬虫的基本概念网络爬虫(又称网络蜘蛛,机器人),就是模拟客户端发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的
- 如果不用类库(如jquery)来写,往往很多时候,都需要通过id或tag来获取html里的某一对象,然后对其进行操作。为了节省代码,把常用的
- 总有人认为linux搭建php环境很复杂,然后尝试安装lnmp一键安装包。其实说白了就是安装一个web服务器,然后支持php即可,很简单的,
- key_buffer_size - 这对MyISAM表来说非常重要。如果只是使用MyISAM表,可以把它设置为可用内存的 30-40%。合理
- 对于在外的游子,每逢佳节倍思亲。而对于996ICU的苦逼程序猿们,最期待的莫过于各种节假日能把自己丢在床上好好休息一下了。这几天各公司都陆续
- 嘀咕嘀咕: 每次写文章往往开头是最难的,总想给UED读者不同的sense。就像我们设计产品总是想迎合我们的用户,最后觉得好似跟在用户后面狂奔
- 新年新气象,今天就用代码来制作一个 动态鞭炮 ,效果如下所示。动态鞭炮的基本原理是:将一个录制好的鞭炮视频以字符画的形式复现,基本步骤是帧采
- 前言大部分初学编程的人来说刚开始都会练习判断两个数或者三个数的大小,来熟悉某种语言的特性和最基本的if,else循环,当我们学习了更高级的语
- 01直接生成这类方法是利用基本程序软件包numpy的随机数产生方法来生成各类用于聚类算法数据集合,也是自行制作轮子的生成方法。一、基础类型1