百度的定义: logistic回归又称logistic回归分析,是一种广义的线性回归分析模型,常用于数据挖掘,疾病自动诊断,经济预测等领域。例如,探讨引发疾病的危险因素,并根据危险因素预测疾病发生的概率等。以胃癌病情分析为例,选择两组人群,一组是胃癌组,一组是非胃癌组,两组人群必定具有不同的体征与生活方式等。因此因变量就为是否胃癌,值为“是”或“否”,自变量就可以包括很多了,如年龄、性别、饮食习惯、幽门螺杆菌感染等。自变量既可以是连续的,也可以是分类的。然后通过logistic回归分析,可以得到自变量的权重,从而可以大致了解到底哪些因素是胃癌的危险因素。同时根据该权值可以根据危险因素预测一个人患癌症的可能性。
逻辑回归主要是解决二分类问题
Logistic 回归的本质是:假设数据服从这个分布,然后使用极大似然估计做参数的估计
Logistic回归模型的适用条件
1 因变量为二分类的分类变量或某事件的发生率,并且是数值型变量。但是需要注意,重复计数现象指标不适用于Logistic回归。
2 残差和因变量都要服从二项分布。二项分布对应的是分类变量,所以不是正态分布,进而不是用最小二乘法,而是最大似然法来解决方程估计和检验问题。
3 自变量和Logistic概率是线性关系
4 各观测对象间相互独立
公式:
输出:[0,1]区间的概率值,默认0.5作为阀值 注:g(z)为sigmoid函数
与线性回归原理相同,但由于是分类问题, 损失函数不一样,只能通过梯度下降求解
对数似然损失函数:
cost损失的值越小,那么预测的类别准确度更高
sklearn 的API sklearn.linear_model.LogisticRegression
sklearn.linear_model.LogisticRegression(penalty=‘l2’, C = 1.0)
Logistic回归分类器 coef_:回归系数
注:感觉使用python进行逻辑回归模型比较麻烦,其他的软件如spss,stata有可进行计算
def logistic():
"""
逻辑回归做二分类进行癌症预测
:return: none
"""
#构造列标签名字
#读取数据
data = pd.read_csv()
print(data)
#缺失值处理
data = data.replace(to_replace="?",value=np.nan)
data.dropna()
#进行数据的分割
x_train, x_test, y_train, y_test = train_test_split(data[column[1:10]],data[column[10]] ,test_size=0.25)
#标准化处理
std= StandardScaler()
x_train = std_x.fit_transform(x_train)
x_test = std_x.transform(x_test)
#逻辑回归预测
lg =LogisticRegression(c=1.0)
lg.fit(x_train,y_train)
print(lg.coef_)
y_predict = lg.predict(x_test)
print("准确率:",lg.score(x_test,y_test))
print("召回率:", classification_report(y_test, y_predict,labels=[2,4],target_names=["良性","恶性"]))
return None
if __name__ == "__main__":
logistic()



