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

Python垃圾邮件的逻辑回归分类示例详解

拆分特征值和目标数据前面已经可知,预测和模型得分结果也是直接使用模型的方法,下面主要是要测试准确率和找出不能正确预测的样本,以及不同的惩罚下的模型得分,主要运用到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
投稿

猜你喜欢

  • 使用Python机器学习降低静态日志噪声

    2021-11-09 23:48:57
  • asp连接mysql数据库详细实现代码

    2012-12-04 19:56:39
  • CSS hack:区分IE6,IE7,firefox

    2007-12-23 10:25:00
  • 用 Django 开发一个 Python Web API的方法步骤

    2021-05-24 02:36:11
  • python爬虫之遍历单个域名

    2021-06-28 07:45:34
  • 强大的Perl正则表达式实例详解

    2023-08-09 11:12:33
  • Python安装Imaging报错:The _imaging C module is not installed问题解决方法

    2021-05-19 06:09:39
  • 详解Python如何利用turtle绘制中国结

    2021-02-10 13:52:29
  • python pandas分割DataFrame中的字符串及元组的方法实现

    2022-09-10 09:30:14
  • Anaconda超详细保姆级安装配置教程

    2022-09-06 08:11:50
  • 对Python的zip函数妙用,旋转矩阵详解

    2023-06-09 12:42:45
  • 在django项目中,如何单独运行某个python文件

    2023-04-27 07:37:22
  • python将ip地址转换成整数的方法

    2022-10-17 23:40:23
  • PHP的mysqli_stat()函数讲解

    2023-06-12 08:11:33
  • asp函数解决SQL注入漏洞

    2008-10-12 19:53:00
  • PHP children()函数讲解

    2023-06-13 04:38:38
  • 关于python常见异常以及处理方法

    2021-03-17 06:13:34
  • Python命名空间及作用域原理实例解析

    2021-05-10 17:57:40
  • python训练数据时打乱训练数据与标签的两种方法小结

    2021-11-17 11:15:12
  • go语言之给定英语文章统计单词数量(go语言小练习)

    2023-09-16 09:11:12
  • asp之家 网络编程 m.aspxhome.com