当前位置: 首页 > news >正文

怎么申请自己的网站网址网站建设响应

怎么申请自己的网站网址,网站建设响应,wordpress购物插件,南平 网站建设Logistic Regression(逻辑回归)是一种用于处理二分类问题的统计学习方法。它基于线性回归 模型,通过Sigmoid函数将输出映射到[0, 1]范围内,表示概率。逻辑回归常被用于预测某个实 例属于正类别的概率。 一、数据集介绍 本例使用了…

        Logistic Regression(逻辑回归)是一种用于处理二分类问题的统计学习方法。它基于线性回归 模型,通过Sigmoid函数将输出映射到[0, 1]范围内,表示概率。逻辑回归常被用于预测某个实 例属于正类别的概率。

一、数据集介绍

        本例使用了一个垃圾邮件的数据集 Spambase - UCI Machine Learning Repository 实例数量: 4601(垃圾邮件1813封,占39.4%) 属性数量: 58(57个连续属性,1个名义类别标签) 属性信息: 最后一列'spam'(垃圾邮件数据)表示邮件是否被视为垃圾邮件(1)或非垃圾邮件(0),即 不受欢迎的商业电子邮件。多数属性指示特定单词或字符在邮件中是否经常出现。

数据集地址 

        Spambase - UCI 机器学习存储库

    “垃圾邮件”的概念是多种多样的:产品/网站广告、快速赚钱计划、连锁信、色情内容...... 此数据集的分类任务是确定给定电子邮件是否为垃圾邮件。

        我们收集的垃圾邮件来自我们的邮政管理员和提交垃圾邮件的个人。我们收集的非垃圾邮件来自归档的工作和个人电子邮件,因此单词“george”和区号“650”是非垃圾邮件的标志。在构建个性化垃圾邮件过滤器时,这些过滤器非常有用。要么必须盲目此类非垃圾邮件指示器,要么获取非常广泛的非垃圾邮件集合以生成通用垃圾邮件过滤器。

        有关垃圾邮件的背景信息:Cranor, Lorrie F., LaMacchia, Brian A. Spam!, Communications of the ACM, 41(8):74-83, 1998.

变量名称角色类型描述单位缺失值
word_freq_make特征连续的
word_freq_address特征连续的
word_freq_all特征连续的
word_freq_3d特征连续的
word_freq_our特征连续的
word_freq_over特征连续的
word_freq_remove特征连续的
word_freq_internet特征连续的
word_freq_order特征连续的
word_freq_mail特征连续的
word_freq_receive特征连续的
word_freq_will特征连续的
word_freq_people特征连续的
word_freq_report特征连续的
word_freq_addresses特征连续的
word_freq_free特征连续的
word_freq_business特征连续的
word_freq_email特征连续的
word_freq_you特征连续的
word_freq_credit特征连续的
word_freq_your特征连续的
word_freq_font特征连续的
word_freq_000特征连续的
word_freq_money特征连续的
word_freq_hp特征连续的
word_freq_hpl特征连续的
word_freq_george特征连续的
word_freq_650特征连续的
word_freq_lab特征连续的
word_freq_labs特征连续的
word_freq_telnet特征连续的
word_freq_857特征连续的
word_freq_data特征连续的
word_freq_415特征连续的
word_freq_85特征连续的
word_freq_technology特征连续的
word_freq_1999特征连续的
word_freq_parts特征连续的
word_freq_pm特征连续的
word_freq_direct特征连续的
word_freq_cs特征连续的
word_freq_meeting特征连续的
word_freq_original特征连续的
word_freq_project特征连续的
word_freq_re特征连续的
word_freq_edu特征连续的
word_freq_table特征连续的
word_freq_conference特征连续的
char_freq_;特征连续的
char_freq_(特征连续的
char_freq_特征连续的
char_freq_!特征连续的
char_freq_ 美元特征连续的
char_freq_#特征连续的
capital_run_length_average特征连续的
capital_run_length_longest特征连续的
capital_run_length_total特征连续的
目标二元的垃圾邮件 (1) 或非垃圾邮件 (0)

其他变量信息 

        “spambase.data”的最后一列表示该电子邮件是否被视为垃圾邮件 (1) 或非 (0),即未经请求的商业电子邮件。大多数属性指示电子邮件中是否经常出现某个特定单词或字符。run-length 属性 (55-57) 测量连续大写字母序列的长度。有关每个属性的统计度量,请参阅此文件的末尾。以下是属性的定义:

                48 个 word_freq_WORD 类型的连续实数 [0,100] 属性 = 电子邮件中与 WORD 匹配的单词百分比,即 100 * (WORD 在电子邮件中出现的次数)/ 电子邮件中的单词总数。在这种情况下,“word” 是由非字母数字字符或字符串结尾限定的任何字母数字字符字符串。

                6 个 char_freq_CHAR] 类型的连续实数 [0,100] 属性 = 电子邮件中与 CHAR 匹配的字符百分比,即 100 *(CHAR 出现次数)/ 电子邮件中的字符总数

                1 个 capital_run_length_average 类型的连续实数 [1,...] 属性 = 大写字母不间断序列的平均长度

                1 个 capital_run_length_longest 类型的连续整数 [1,...] 属性 = 最长的不间断大写字母序列的长度 1 个 capital_run_length_total 类型的连续整数 [1,...] 属性 = 大写字母的不间断序列的长度之和 = 电子邮件中大写字母的总数

                1 个 spam 类型的名义 {0,1} 类属性 = 表示该电子邮件是否被视为垃圾邮件 (1) 或非 (0),即未经请求的商业电子邮件。

二、设计思路

2.1、读取数据

import pandas as pd
df=pd.read_table('spambase.data',header=None,sep=',')
df

2.2、划分特征

X=df.iloc[:,:-1]
y=df.iloc[:,-1]

2.3、划分训练集和测试集

from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test=train_test_split(X,y,train_size=0.75,random_state=42)

2.4、标准化

from sklearn.preprocessing import StandardScaler
scaler=StandardScaler()
X_train_scaler=scaler.fit_transform(X_train)
X_test_scaler=scaler.transform(X_test)

2.5、转换为Tensor张量 

import torch
X_train_tensor=torch.tensor(X_train_scaler,dtype=torch.float32)
y_train_tensor=torch.tensor(y_train.values,dtype=torch.float32)
X_test_tensor=torch.tensor(X_test_scaler,dtype=torch.float32)
y_test_tensor=torch.tensor(y_test.values,dtype=torch.float32)

2.6、创建数据加载器

from torch.utils.data import DataLoader,TensorDataset
dataset=TensorDataset(X_train_tensor,y_train_tensor)
dataloader=DataLoader(dataset,shuffle=True,batch_size=64)

2.7、定义逻辑回归模型

import torch.nn as nn
class LogisticRegression(nn.Module):def __init__(self,inputsize):super().__init__()self.liner=nn.Linear(inputsize,1)def forward(self,x):return torch.sigmoid(self.liner(x))
model=LogisticRegression(X_train_tensor.shape[1])

2.8、定义损失函数和优化器

from torch.optim import Adam
cri=nn.BCELoss()
optimer=Adam(model.parameters(),lr=0.05)

2.9、训练模型

for epoch in range(1,501):total_loss=0model.train()for x,y in dataloader:optimer.zero_grad()y_hat=model(x)loss=cri(y_hat,y.view(-1,1))loss.backward()optimer.step()total_loss+=lossavg_loss=total_loss/len(dataloader)if epoch%100==0 or epoch==1:print(epoch,avg_loss.item())

 2.10、模型评估

from sklearn.metrics import roc_curve,auc
import torch
with torch.no_grad():model.eval()y_pred=model(X_test_tensor)fpr, tpr, thresholds=roc_curve(y_test.values,y_pred.numpy())roc_auc=auc(fpr, tpr)

2.11、可视化

from matplotlib import pyplot as plt
plt.figure(figsize=(10, 6))
plt.plot(fpr, tpr, color='darkorange', lw=2, label=f'AUC = {roc_auc:.2f}')
plt.plot([0, 1], [0, 1], color='navy', lw=2, linestyle='--')
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('Receiver Operating Characteristic (ROC) Curve')
plt.legend(loc='lower right')
plt.show()

 三、完整代码

import pandas as pd  
from sklearn.model_selection import train_test_split  
from matplotlib import pyplot as plt  
from torch.utils.data import DataLoader, TensorDataset  
import torch.nn as nn  
from sklearn.metrics import roc_curve, auc  
import torch  
from torch.optim import Adam  
from sklearn.preprocessing import StandardScaler  # 读取数据集,使用制表符作为分隔符  
df = pd.read_table('spambase.data', header=None, sep=',')  # 分离特征和标签  
X = df.iloc[:, :-1]  # 特征  
y = df.iloc[:, -1]   # 标签  # 划分训练集和测试集,训练集占75%  
X_train, X_test, y_train, y_test = train_test_split(X, y, train_size=0.75, random_state=42)  # 数据标准化  
scaler = StandardScaler()  
X_train_scaler = scaler.fit_transform(X_train)  # 拟合并转换训练数据  
X_test_scaler = scaler.transform(X_test)        # 仅转换测试数据  # 将数据转换为 PyTorch 张量  
X_train_tensor = torch.tensor(X_train_scaler, dtype=torch.float32)  
y_train_tensor = torch.tensor(y_train.values, dtype=torch.float32)  
X_test_tensor = torch.tensor(X_test_scaler, dtype=torch.float32)  
y_test_tensor = torch.tensor(y_test.values, dtype=torch.float32)  # 创建数据集和数据加载器  
dataset = TensorDataset(X_train_tensor, y_train_tensor)  
dataloader = DataLoader(dataset, shuffle=True, batch_size=64)  # 定义逻辑回归模型  
class LogisticRegression(nn.Module):  def __init__(self, inputsize):  super().__init__()  self.liner = nn.Linear(inputsize, 1)  # 单层线性回归  def forward(self, x):  return torch.sigmoid(self.liner(x))  # 使用sigmoid激活函数  # 实例化模型  
model = LogisticRegression(X_train_tensor.shape[1])  # 定义损失函数和优化器  
cri = nn.BCELoss()  # 二元交叉熵损失  
optimer = Adam(model.parameters(), lr=0.05)  # Adam优化器  # 训练模型  
for epoch in range(1, 501):  total_loss = 0  # 初始化总损失  model.train()  # 切换到训练模式  for x, y in dataloader:  optimer.zero_grad()  # 清空梯度  y_hat = model(x)  # 前向传播  loss = cri(y_hat, y.view(-1, 1))  # 计算损失  loss.backward()  # 反向传播  optimer.step()  # 更新参数  total_loss += loss  # 累加损失  avg_loss = total_loss / len(dataloader)  # 计算平均损失  if epoch % 100 == 0 or epoch == 1:  print(epoch, avg_loss.item())  # 每100个epoch打印损失  # 评估模型  
with torch.no_grad():  model.eval()  # 切换到评估模式  y_pred = model(X_test_tensor)  # 预测测试数据  fpr, tpr, thresholds = roc_curve(y_test.values, y_pred.numpy())  # 计算ROC曲线  roc_auc = auc(fpr, tpr)  # 计算AUC值  # 绘制ROC曲线  
plt.figure(figsize=(10, 6))  
plt.plot(fpr, tpr, color='darkorange', lw=2, label=f'AUC = {roc_auc:.2f}')  # 绘制ROC曲线  
plt.plot([0, 1], [0, 1], color='navy', lw=2, linestyle='--')  # 绘制随机猜测的对角线  
plt.xlabel('假阳率 (False Positive Rate)')  
plt.ylabel('真阳率 (True Positive Rate)')  
plt.title('接收者操作特征 (ROC) 曲线')  
plt.legend(loc='lower right')  
plt.show()  

设计思路 

  1. 数据预处理:

    首先读取数据集,并将其分为特征和标签两部分。接着划分训练集和测试集,这里使用了75%的数据用于训练,25%用于测试。使用StandardScaler对特征进行标准化,使其均值为0,方差为1,有助于提高模型训练的稳定性和收敛速度。

  2. 数据加载:

    将训练数据转换为PyTorch的张量格式,并使用DataLoader创建可迭代的数据集,以便在训练期间批量加载数据。

  3. 模型构建:

    定义了一个简单的逻辑回归模型,该模型只包含一个线性层,有一层sigmoid激活函数用于二分类任务。

  4. 训练模型:

    使用二元交叉熵损失(BCELoss)和Adam优化器进行模型训练。训练过程中,使用循环遍历每个epoch,并计算损失,从而逐步优化模型参数。

  5. 模型评估:

    训练完成后,在测试集上进行评价,计算ROC曲线和AUC值,以便直观显示模型的分类性能。

  6. 可视化结果:

    使用Matplotlib绘制ROC曲线,帮助分析模型的表现和分类效果。

http://www.dtcms.com/a/431955.html

相关文章:

  • 西部数码网站管理助手serv-u默认密码杭州seo网站推广排名
  • 好的网站具备什么条件网站运营建设方案
  • 简单好看个人主页网站模板建设方案模板
  • gRPC从0到1系列【11】
  • 自助建站系拟采用建站技术
  • 如何做网站推广优化好的漂亮的淘宝客网站
  • 沈阳市做网站的公司准备建网站该怎么做
  • 多线程—阻塞队列的练习
  • C#基础10-结构体和枚举
  • 网站建设 福田东莞推广系统怎么做
  • 怎么做免费域名网站wordpress 图片库
  • 全网营销公司洛阳seo网络推广
  • git知识点
  • 制作网站要钱吗oppo开放平台
  • AI 伦理困局:参与式治理如何破解技术狂飙
  • 广州新际网站建设公司怎么样大连本地网
  • 【算法训练营Day27】动态规划part3
  • 网站后台管理系统软件开发一款app成本
  • 衡阳网站建设专家今天的特大新闻有哪些
  • 电子政务网站建设西安网站建设电话
  • 论文解读:GRAPHEVAL: A LIGHTWEIGHT GRAPH-BASED LLM FRAMEWORK FOR IDEA EVALUATION
  • 门业网站 模板it运维工程师工作内容
  • 河北省住房和城乡建设厅网站打不开学做网站论坛教程下载
  • Java 异常体系:从 Throwable 根类到自定义异常,一篇理清所有分类与逻辑
  • 仿5173网站汕尾旅游攻略app跳转网站
  • memory_profiler各个参数都是什么意思?
  • 网站开发技术简介dwsynology建设网站
  • p2p网站建设框架如何在google上免费推广
  • win7 win10 win11安装IE11浏览器
  • 深度学习池化(Pooling)的进阶应用与优化策略