AI开辟:逻辑回归 - 实战演练- 垃圾邮件的辨认(一)

[复制链接]
发表于 2025-12-16 14:10:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
逻辑回归的概念和演示

逻辑回归(Logistic Regression)最常用于二分类标题,即目的变量(标签)只有两个种别的场景。它通过拟合一个S形的Sigmoid函数来猜测一个变乱发生的概率,输出值在0到1之间,可以将其分别为两个种别。
常见场景


      
  • 垃圾邮件分类:根据邮件内容猜测邮件是否是垃圾邮件。  
  • 疾病猜测:根据某些特性(如年事、血压等)猜测或人是否患有某种疾病。  
  • 客户流失猜测:根据用户的举动数据,猜测用户是否会流失。
示例:垃圾邮件分类

假设我们有一个简朴的数据集,包罗邮件的一些特性(比方:单词频率),而且我们想要猜测邮件是否是垃圾邮件(1为垃圾邮件,0为正常邮件)。下面是一个简朴的Python代码示例,使用逻辑回归来办理这个标题。
  1. import numpy as np
  2. import pandas as pd
  3. from sklearn.model_selection import train_test_split
  4. from sklearn.preprocessing import StandardScaler
  5. from sklearn.linear_model import LogisticRegression
  6. from sklearn.metrics import accuracy_score, confusion_matrix
  7. # 假设这是我们的数据集,包含两个特征和一个标签
  8. data = {
  9.     'word_freq_discount': [0.1, 0.4, 0.2, 0.7, 0.3],
  10.     'word_freq_free': [0.3, 0.1, 0.6, 0.8, 0.5],
  11.     'label': [0, 1, 0, 1, 0]  # 0 - 正常邮件, 1 - 垃圾邮件
  12. }
  13. # 创建DataFrame
  14. df = pd.DataFrame(data)
  15. # 特征和标签
  16. X = df[['word_freq_discount', 'word_freq_free']]  # 特征
  17. y = df['label']  # 标签
  18. # 将数据拆分为训练集和测试集
  19. X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
  20. # 特征标准化
  21. scaler = StandardScaler()
  22. X_train_scaled = scaler.fit_transform(X_train)
  23. X_test_scaled = scaler.transform(X_test)
  24. # 创建并训练逻辑回归模型
  25. model = LogisticRegression()
  26. model.fit(X_train_scaled, y_train)
  27. # 预测
  28. y_pred = model.predict(X_test_scaled)
  29. # 评估模型
  30. accuracy = accuracy_score(y_test, y_pred)
  31. conf_matrix = confusion_matrix(y_test, y_pred)
  32. print("准确率:", accuracy)
  33. print("混淆矩阵:\n", conf_matrix)
复制代码
代码表明:

      
  • 数据集准备:创建一个简朴的数据集,此中包罗两个特性(word_freq_discount, word_freq_free)和标签(label),label为0或1,表现邮件是否为垃圾邮件。  
  • 数据分割:使用train_test_split将数据集分割为练习集和测试集。  
  • 特性标准化:使用StandardScaler对特性举行标准化,包管数据在类似的标准下。  
  • 模子练习:使用LogisticRegression练习逻辑回归模子。  
  • 猜测和评估:通过猜测并盘算正确率以及肴杂矩阵评估模子的性能。
输出:

  1. 准确率: 1.0
  2. 混淆矩阵:
  3. [[1 0]
  4. [0 1]]
复制代码
在这个简朴的例子中,逻辑回归模子乐成地对邮件举行分类,将垃圾邮件(1)和正常邮件(0)正确地分开了。
关于数据集的表明:

这个特性数据集 data 是一个简朴的表格,表现了邮件中某些关键词出现的频率以及相应的标签(垃圾邮件或正常邮件)。具体来说,数据集包罗以下内容:
1. 'word_freq_discount'

这是一个特性,表现邮件中包罗“discount”一词的频率。值越高,表现邮件中提到“discount”这个词的频率越高。这个特性大概用于判定邮件是否涉及促销、优惠等内容,通常这些词汇在垃圾邮件中出现的频率较高。

      
  • 比方,0.1 表现该邮件中“discount”一词出现的频率是 10%,0.7 表现频率是 70%。
2. 'word_freq_free'

这是另一个特性,表现邮件中包罗“free”一词的频率。与“discount”类似,这个特性反映了邮件中“free”一词的
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表