目录
逻辑回归
线性回归的式子作为逻辑回归的输入。 解决二分类问题。
逻辑回归应用:
•
广告点击率
•
•
判断用户的性别
•
•
预测用户是否会购买给定的商品类
•
•
判断一条评论是正面的还是负面的
点击 0.001 0.01
广告点击:
没点击
逻辑回归是解决二分类问题的利器
逻辑回归公式
逻辑回归的损失函数、优化(了解)
与线性回归原理相同,但由于是分类问题,损失函数不一样,只能通过梯度下降求解。
逻辑回归预测癌症案例
sklearn逻辑回归API
•sklearn.linear_model.LogisticRegression
•
sklearn.linear_model.LogisticRegression
(
penalty=‘l2’,
C = 1.0
)
•
•
Logistic
回归分类器
•
coef
_
:回归系数
良/恶性乳腺癌肿瘤预测
数据描述
(1)699条样本,共11列数据,第一列用语检索的id,后9列分别是与肿瘤
相关的医学特征,最后一列表示肿瘤类型的数值。
(2)包含16个缺失值,用”?”标出。
良/恶性乳腺癌肿分类流程
1、网上获取数据(工具pandas)
2、数据缺失值处理、标准化
3、LogisticRegression估计器流程
def logistic():
"""
逻辑回归做二分类进行癌症预测(根据细胞的属性特征)
:return: NOne
"""
# 构造列标签名字
column = ['Sample code number','Clump Thickness', 'Uniformity of Cell Size','Uniformity of Cell Shape','Marginal Adhesion', 'Single Epithelial Cell Size','Bare Nuclei','Bland Chromatin','Normal Nucleoli','Mitoses','Class']
# 读取数据
data = pd.read_csv("https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data", names=column)
print(data)
if __name__=="__main__":
logistic()
缺失值进行处理
data = data.replace(to_replace='?', value=np.nan)
data = 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.fit_transform(x_train)
x_test = std.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
逻辑回归总结
应用:广告点击率预测、电商购物搭配推荐,只能解决二分类问题。
优点:适合需要得到一个分类概率的场景
缺点:当特征空间很大时,逻辑回归的性能不是很好(看硬件能力),不好处理多分类问题。
softmax方法-逻辑回归在多分类问题上的推广
逻辑回归于朴素贝叶斯总结