接着继续学习后面的逻辑回归,逻辑回归的核心是预测“属于某个类别的概率”。它先像线性回归一样,把输入特征进行线性组合z=w1x1+w2x2+bz=w1​x1​+w2​x2​+b,算出一个个具体的数值;逻辑回归引入了一个Sigmoid函数,这个函数会把任何数值都“挤压”到0到1之间,变成一个概率值。如果概率 ≥0.5,预测为类别“1”;如果 <0.5,预测为类别“0”。

下面做了一个实践,在向银行贷款,银行会根据你的相关信息判断你能否贷款。

首先,读取脱敏后的信贷数据,利用 StandardScaler 对 Amount 金额特征进行 Z-score 标准化以消除量纲影响,同时剔除 Time 时间戳列以避免冗余干扰;

scaler = StandardScaler()      #实例化 标准化  对象scaler
data['Amount'] = scaler.fit_transform(data[['Amount']])   #将计算后的标准差 存入data中
data =data.drop(['Time'],axis=1)

其次,通过 matplotlib 绘制类别频数柱状图,直观验证了数据集中正负样本分布极度不均衡的现状;随后,调用 train_test_split 按训练集占 30% 的比例对原始特征与标签进行切分;

最后,实例化逻辑回归模型(设定正则化强度 C=0.01)进行建模,将训练集传入 fit() 方法进行权重学习,并利用未见过的测试集进行预测与性能评估,输出准确率约为 0.9991。

from sklearn.linear_model import LogisticRegression  #逻辑回归的类,所有的算法都封装在这个类里面。
lr = LogisticRegression(C=0.01)  #先调用这个类创建一个逻辑回归对象lr  C=0.001 0.01 0.1 1 10 100 1000
lr.fit(x_train_w,y_train_w) 

代码运行的结果如下所示。

更多推荐