windows 建网站,中卫展览展厅设计公司,网站开发与维护招聘,html可以用什么软件写1. 逻辑回归简介
逻辑回归是一种线性分类模型#xff0c;常用于二分类问题。它通过学习特征权重#xff0c;将输入映射为0 到 1 之间的概率值#xff0c;并根据阈值将样本归入某一类别。逻辑回归使用Sigmoid 函数将线性结果转化为概率。
尽管名字中有“回归”#xff0c;…1. 逻辑回归简介
逻辑回归是一种线性分类模型常用于二分类问题。它通过学习特征权重将输入映射为0 到 1 之间的概率值并根据阈值将样本归入某一类别。逻辑回归使用Sigmoid 函数将线性结果转化为概率。
尽管名字中有“回归”但逻辑回归主要是用于分类任务。 2. 数学公式
预测函数
逻辑回归的预测公式为
x 为输入特征向量θ 为参数向量 表示样本属于正类的概率。
损失函数
逻辑回归的损失函数是对数损失函数Log Loss m 为样本数量 为真实标签0 或 1 为第 i 个样本的预测概率。θ 为权重参数。 3. 示例代码
这里用 Python scikit-learn 实现逻辑回归模型
示例任务使用鸢尾花数据集进行分类
# 导入必要的库
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
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, classification_report# 1. 加载数据集
iris load_iris()
X iris.data[:, :2] # 选取前两个特征便于可视化
y (iris.target ! 0).astype(int) # 转换成二分类问题是否为第一类# 2. 数据预处理
X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.3, random_state42)
scaler StandardScaler() # 标准化特征
X_train scaler.fit_transform(X_train)
X_test scaler.transform(X_test)# 3. 训练逻辑回归模型
model LogisticRegression()
model.fit(X_train, y_train)# 4. 预测并评估
y_pred model.predict(X_test)
print(模型准确率:, accuracy_score(y_test, y_pred))
print(分类报告:\n, classification_report(y_test, y_pred))# 5. 可视化决策边界
def plot_decision_boundary(X, y, model):h 0.01x_min, x_max X[:, 0].min() - 0.5, X[:, 0].max() 0.5y_min, y_max X[:, 1].min() - 0.5, X[:, 1].max() 0.5xx, yy np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))Z model.predict(np.c_[xx.ravel(), yy.ravel()])Z Z.reshape(xx.shape)plt.contourf(xx, yy, Z, alpha0.8)plt.scatter(X[:, 0], X[:, 1], cy, edgecolorsk, markero)plt.xlabel(Feature 1)plt.ylabel(Feature 2)plt.title(Logistic Regression Decision Boundary)plt.show()plot_decision_boundary(X_test, y_test, model)4. 代码说明 加载数据集 load_iris() 加载鸢尾花数据集将标签转换为二分类问题0 或 1。 数据预处理 使用 StandardScaler 对特征标准化使其均值为 0方差为 1。 模型训练 使用 LogisticRegression 训练逻辑回归模型。 模型评估 使用 accuracy_score 和 classification_report 评估模型性能。 可视化 绘制逻辑回归的决策边界。 5. 模型分析与扩展
优点
输出概率值具有良好的可解释性计算简单训练速度快适合线性可分问题。
缺点
对于复杂的非线性关系表现不佳容易受到异常值的影响。
扩展
多分类逻辑回归通过 multi_classmultinomial 和 solverlbfgs 参数逻辑回归可以实现多分类。正则化penalty 参数可设置 L1Lasso或 L2Ridge正则化来防止过拟合。 6. 进一步提升
特征工程创建更多有效的特征如多项式特征。正则化合理设置正则化参数 C 以控制模型复杂度。非线性模型如果逻辑回归效果不佳可以尝试更复杂的非线性模型如 SVM 或神经网络。 逻辑回归模型输入数据格式
LogisticRegression 模型来自 scikit-learn 库fit(X_train, y_train) 方法用于训练模型。这里的 X_train 和 y_train 是输入特征和标签要求的数据格式如下 1. X_train特征矩阵
类型numpy.ndarray、pandas.DataFrame 或其他可被转换为 NumPy 数组的格式。形状(n_samples, n_features) n_samples样本数量行数。n_features每个样本的特征数量列数。
示例
如果有 100 个样本每个样本有 4 个特征那么 X_train 的形状为 (100, 4)
X_train np.array([[5.1, 3.5, 1.4, 0.2],[4.9, 3.0, 1.4, 0.2],... # 省略其他样本])2. y_train标签向量
类型numpy.ndarray、pandas.Series 或其他可被转换为一维数组的格式。形状(n_samples,) n_samples标签数量必须与 X_train 的样本数量相同。
值的范围
二分类问题时y_train 通常为 0 或 1多分类问题时y_train 为类别索引如 0、1、2 等整数。
示例
如果有 100 个样本y_train 为长度为 100 的一维数组
y_train np.array([0, 1, 0, 1, 1, 0, ...])3. 输入数据注意事项 缺失值 X_train 不允许有缺失值NaN可以使用 SimpleImputer 等方法填充缺失值。 数据类型 输入数据最好为浮点型。可以通过 X_train.astype(float) 将数据转换为 float 类型。 标准化/归一化 对特征进行标准化或归一化可以加快模型收敛速度尤其是当特征值的量级差距较大时。 4. 示例代码
以下是完整的数据格式示例
import numpy as np
from sklearn.linear_model import LogisticRegression# 示例数据
X_train np.array([[5.1, 3.5, 1.4, 0.2],[4.9, 3.0, 1.4, 0.2],[4.7, 3.2, 1.3, 0.2]])
y_train np.array([0, 1, 0]) # 标签对应样本类别# 模型训练
model LogisticRegression()
model.fit(X_train, y_train)5. 输出
训练后的模型保存了特征权重 theta可以通过 model.coef_ 查看预测新数据调用 model.predict(X_test)输入格式同 X_train。 总结X_train 为二维矩阵y_train 为一维向量并且二者的样本数量需要一致。如果数据有问题如缺失值或数据类型不匹配需要在训练前进行预处理。