理论解释
-
理解“逻辑回归”的名字,需要拆开理解,拆成两部分:“逻辑”和“回归”
“回归””来自其父级,即广义线性回归模型。
“逻辑”如何理解?Logistic 不应该翻译成“逻辑”,因其语义来自Logarithm:对数,这也更体现了Logistic Regression的本质。 -
逻辑回归虽然叫做回归,但是其主要【解决分类问题】。可用于二分类,也可以用于多分类问题。
对于预测变量y为离散值时候,可以用逻辑回归算法(Logistic Regression),
逻辑回归的本质是将线性回归进行一个变换,该模型的输出变量范围始终在 0 和 1 之间。 -
逻辑函数在逻辑回归中为sigmoid函数,简称S型函数
逻辑回归的代价函数为交叉熵函数 -
sklearn中计算逻辑回归(分类)的准确性
accuracy_score函数是scikit-learn库中用于计算分类器准确率的函数。
准确率是分类器在所有分类样本中正确分类的比例
accuracy_score函数接受两个参数,分别是预测标签和真实标签,返回一个准确率的浮点数值。
实例
实现步骤和线性回归基本类似:
1)准备数据集,特征集X,标签集y
2) 实例化模型 和 拟合模型(训练模型)
model = LogisticRegression()
model.fit(X_train,y_train)
3) 模型应用–预测新数据(测试数据)
model.predict(X_test)
4) 评估模型准确性
rate= accuracy_score(y_真实,y_预测)
与线性回归不同的是应用的模型不同与评估模型好坏的函数不同,且这两者均为sklearn提供好的。
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score# 假设有特征矩阵X和目标变量y(0或1)
X = [[1, 2], [2, 4], [3, 6], [4, 8]]
y = [0, 0, 1, 1]# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 创建逻辑回归模型
model = LogisticRegression()# 拟合模型
model.fit(X_train, y_train)# 预测测试集
y_pred = model.predict(X_test)# 计算分类准确率
accuracy = accuracy_score(y_test, y_pred)print("逻辑回归模型的准确率:", accuracy)