机器学习-逻辑回归与二分类
9.逻辑回归
(1)应用场景
广告点击率 是否会被点击
是否为垃圾邮件
是否患病
是否为金融诈骗
是否为虚假账号
(2)逻辑回归的原理
1.输入

逻辑回归的输入就是一个线性回归的结果
2.激活函数
sigmold函数 [0,1]
1/(1+e^(-x))
假设函数/线性模型
1/(1+e^(-(w1x1+w2x2+w3x3+...+wnxn+b)))
损失函数
(y_predict - y_true)平方和/总数
逻辑回归的真实值/预测值 是否属于某个类别
对数似然损失

y=1 真实值属于这个类别 y=0 真实值不属于这个类别

计算损失:其中x为逻辑回归结果,y为真实结果

log(P),P值越大,结果越小
优化损失
梯度下降
(3)逻辑回归API

案例:癌症分类预测-良/恶性乳腺癌预测
流程分析:
import pandas as pd
import numpy as np
1)获取数据
读取的时候加上names
#1.读取数据
path = "网址"
column_name = [数据列名称]
data = pd.read_csv(patn,names=column_name)
2)数据处理
处理缺失值
#2.缺失值处理
# 1)替换-)np.nan
data = data.replace(to_replace="7",value=np.nan)
# 2)删除缺失样本
data.dropna(inplace=True)
3)数据集划分
# 3.划分数据集
from sklearn.model_selection import train_test_split# 筛选特征值和目标值
x = data.iloc[:,1:-1]
y = data["Class"]
x_train,x_test,y_train,y_test = train_test_aplit(x,y)
4)特征工程:
无量纲化处理-标准化
#4.标准化
from sklearn.preprocessing import StandardScaler
5)逻辑回归预估器
from sklearn.linear_model import LogisticRegression
eatimator = LogisticRegression()
estimator.fit(x_train,y_train)
#逻辑回归的模型参数:回归系数和偏执
estimator.coef_estimator.intercept_
6)模型评估
# 模型评估
# 方法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)
10.分类的评估方法
(1)精确率与召回率
1 混淆矩阵
TP = True Possitive
FN = False Negative
2 精确率(Precision)与召回率(Recall)
精确率:预测结果为正例样本中真实为正例的比例
召回率:真实为正例的样本中预测结果为正例的比例 查的全不全
F1-score 模型的稳健性
# 查看精确率,召回率,F1-score
from sklearn.metrics import classification_report
report = classification_report(y_test,y_predict,label=[2,4],target_names=["良性","恶性")


