Logistic模型
1. Logistic模型概述
Logistic模型,又称为逻辑回归模型,是一种广泛应用于分类问题的统计学习方法。与线性回归模型不同的是,Logistic模型的输出是概率值而非实数。它通过将线性回归模型的输出通过一个非线性函数(称为“逻辑函数”)进行映射,将连续的输出转化为概率值。
2. Logistic模型原理
Logistic模型基于以下假设:
- 数据具有线性可分性,即可以通过一个超平面将两个不同的类别分开。
- 数据服从伯努利分布,即每个样本的标签属于两个可能的类别之一。
Logistic模型的目标是通过学习一组参数,使得给定输入样本的条件概率能够最好地预测其所属的类别。具体来说,Logistic模型采用逻辑函数(也称为“sigmoid函数”)来将线性模型的输出转化为概率值。逻辑函数的定义如下:
σ ( z ) = 1 1 + e − z \sigma(z) = \frac{1}{1 + e^{-z}} σ(z)=1+e−z1
其中, z z z代表线性回归模型的输出。逻辑函数的特点是将任意实数映射到[0, 1]的区间内,且具有单调递增性质。通过设定适当的阈值,我们可以将概率值转化为类别标签,进而完成分类任务。
3. Logistic模型优点
Logistic模型具有以下几个优点:
- 可解释性强:Logistic模型的参数具有直观的解释,可以帮助我们理解不同特征对分类结果的影响程度。
- 计算效率高:Logistic模型的求解可以使用高效的优化算法,适用于处理大规模数据集。
- 可以处理多类别问题:通过扩展Logistic模型,我们可以解决多类别分类问题。
4. Logistic模型应用实例(多类别问题)
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
iris = load_iris()
# print(iris)
# 打印iris数据集的特征值
print(iris.data)
print(iris.data.shape)
# 打印iris数据集的目标值
print(iris.target)
print(iris.target.shape)
# 打印iris数据集的特征名称
print(iris.feature_names)
# 打印iris数据集的目标名称
print(iris.target_names)
# 打印iris数据集的描述
print(iris.DESCR)
# 划分数据集
x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2)
print(x_train)
print(y_train)
# 标准化
from sklearn.preprocessing import StandardScaler
# 标准化
transfer = StandardScaler()
x_train = transfer.fit_transform(x_train)
x_test = transfer.transform(x_test)
from sklearn.linear_model import LogisticRegression
# 实例化估计器
estimator = LogisticRegression()
# 模型训练
estimator.fit(x_train, y_train)
# 模型评估
# 方法1:直接对比真实值和预测值
y_predict = estimator.predict(x_test)
print("y_predict:\n", y_predict)
print("直接对比真实值和预测值:\n", y_test == y_predict)
# 方法2:计算准确率
score = estimator.score(x_test, y_test)
print("准确率为:\n", score)