马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
逻辑回归的概念和演示
逻辑回归(Logistic Regression)最常用于二分类标题,即目的变量(标签)只有两个种别的场景。它通过拟合一个S形的Sigmoid函数来猜测一个变乱发生的概率,输出值在0到1之间,可以将其分别为两个种别。
常见场景
- 垃圾邮件分类:根据邮件内容猜测邮件是否是垃圾邮件。
- 疾病猜测:根据某些特性(如年事、血压等)猜测或人是否患有某种疾病。
- 客户流失猜测:根据用户的举动数据,猜测用户是否会流失。
示例:垃圾邮件分类
假设我们有一个简朴的数据集,包罗邮件的一些特性(比方:单词频率),而且我们想要猜测邮件是否是垃圾邮件(1为垃圾邮件,0为正常邮件)。下面是一个简朴的Python代码示例,使用逻辑回归来办理这个标题。
- import numpy as np
- import pandas as pd
- from sklearn.model_selection import train_test_split
- from sklearn.preprocessing import StandardScaler
- from sklearn.linear_model import LogisticRegression
- from sklearn.metrics import accuracy_score, confusion_matrix
- # 假设这是我们的数据集,包含两个特征和一个标签
- data = {
- 'word_freq_discount': [0.1, 0.4, 0.2, 0.7, 0.3],
- 'word_freq_free': [0.3, 0.1, 0.6, 0.8, 0.5],
- 'label': [0, 1, 0, 1, 0] # 0 - 正常邮件, 1 - 垃圾邮件
- }
- # 创建DataFrame
- df = pd.DataFrame(data)
- # 特征和标签
- X = df[['word_freq_discount', 'word_freq_free']] # 特征
- y = df['label'] # 标签
- # 将数据拆分为训练集和测试集
- X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
- # 特征标准化
- scaler = StandardScaler()
- X_train_scaled = scaler.fit_transform(X_train)
- X_test_scaled = scaler.transform(X_test)
- # 创建并训练逻辑回归模型
- model = LogisticRegression()
- model.fit(X_train_scaled, y_train)
- # 预测
- y_pred = model.predict(X_test_scaled)
- # 评估模型
- accuracy = accuracy_score(y_test, y_pred)
- conf_matrix = confusion_matrix(y_test, y_pred)
- print("准确率:", accuracy)
- print("混淆矩阵:\n", conf_matrix)
复制代码 代码表明:
- 数据集准备:创建一个简朴的数据集,此中包罗两个特性(word_freq_discount, word_freq_free)和标签(label),label为0或1,表现邮件是否为垃圾邮件。
- 数据分割:使用train_test_split将数据集分割为练习集和测试集。
- 特性标准化:使用StandardScaler对特性举行标准化,包管数据在类似的标准下。
- 模子练习:使用LogisticRegression练习逻辑回归模子。
- 猜测和评估:通过猜测并盘算正确率以及肴杂矩阵评估模子的性能。
输出:
- 准确率: 1.0
- 混淆矩阵:
- [[1 0]
- [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”一词的
|