Python垃圾邮件的逻辑回归分类示例详解
作者:K_C_of 时间:2021-02-21 04:21:00
加载垃圾邮件数据集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
标签:python,垃圾邮件,分类
0
投稿
猜你喜欢
FCKEditor v2.6 编辑器配置图解教程
2024-01-04 22:16:05
javascript自然分类法算法实现代码
2024-04-28 09:33:46
最简洁的asp多重查询的解决方案
2011-04-15 10:50:00
SQLServer 全文检索(full-text)语法
2024-01-21 09:08:02
PHP页面静态化的优缺点与实现
2023-05-27 09:14:40
Python的函数嵌套的使用方法
2022-03-23 10:28:54
Mysql出现问题:error while loading shared libraries: libaio解决方案
2024-01-13 00:12:00
Python爬虫+Tkinter制作一个翻译软件的示例
2023-12-14 07:22:42
在WordPress中创建自定义页面模板方法详解
2023-05-17 09:33:49
MySQL事件与触发器专题精炼
2024-01-22 09:08:21
你真的了解触发器么 数据实时同步更新问题剖析
2024-01-24 00:48:40
python format 格式化输出方法
2023-12-24 16:26:19
ASP编写计数器的优化方法
2009-01-21 19:46:00
javascript双击自动滚屏单击停止
2008-10-13 13:05:00
mysql installer community 8.0.16.0安装配置图文教程
2024-01-14 00:30:55
Python3中的算术运算符详解
2022-04-13 03:01:45
python类中super() 的使用解析
2022-12-02 09:08:10
TensorFlow和Numpy矩阵操作中axis理解及axis=-1的解释
2021-02-14 05:59:09
Python decorator拦截器代码实例解析
2022-04-07 11:03:47
windows下Mysql多实例部署的操作方法
2024-01-19 16:33:11