千家信息网

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

发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,这篇文章主要介绍"Python垃圾邮件的逻辑回归分类示例分析",在日常操作中,相信很多人在Python垃圾邮件的逻辑回归分类示例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对
千家信息网最后更新 2024年11月11日Python垃圾邮件的逻辑回归分类示例分析

这篇文章主要介绍"Python垃圾邮件的逻辑回归分类示例分析",在日常操作中,相信很多人在Python垃圾邮件的逻辑回归分类示例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Python垃圾邮件的逻辑回归分类示例分析"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

按以下要求处理数据集

(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 = 0len_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))

到此,关于"Python垃圾邮件的逻辑回归分类示例分析"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

0