zoukankan      html  css  js  c++  java
  • 7.逻辑回归实践 4/26

    1.逻辑回归是怎么防止过拟合的?为什么正则化可以防止过拟合?(大家用自己的话介绍下)

    · 逻辑回归降拟合方法:

      (1)增加样本量;

      (2)使用正则化:L1、L2正则化;

      (3)特征选择,剔除一些不重要的特征,从而降低模型复杂度;

      (4)进行离散化处理,这也是最主要的。

    · 防止过拟合:

      函数在某些小区间里的导数值(绝对值)非常大,由于自变量值可大可小,所以只有系数足够大,才能保证导数值很大。这里我们是对X数据本身求导,导数里面包含W系数,所以当X的导数很大,即拟合曲线很弯曲时,W就会很大。所以让W变小就可以防止过拟合,L2正则化正是通过让W变小,来防止过拟合的。

         (对w求导)→  

       η、λ、n都是正的,所以 1−ηλ/n小于1,w就减小了。

    2.用logiftic回归来进行实践操作,数据不限。

     来预测泰坦尼克号上幸存、死亡人数与层数、性别、年龄的关系,数据如下(一部分):

      

     代码如下:

    from sklearn.linear_model import LogisticRegression
    from sklearn.model_selection import train_test_split
    from sklearn.preprocessing import StandardScaler
    from sklearn.metrics import mean_squared_error
    from sklearn.metrics import classification_report
    
    import numpy as np
    import pandas as pd
    
    # 读取数据
    data = pd.read_csv('./venv/titanic_data.csv')
    
    # 数据预处理
    data.drop('PassengerId', axis=1, inplace=True)  # 删除PassengerId这一列
    
    # 归类,male为1,female为0
    data.loc[data['Sex'] == 'male', 'Sex'] = 1
    data.loc[data['Sex'] == 'female', 'Sex'] = 0
    data.fillna(data['Age'].mean(), inplace=True)  # 年龄如果为空就用平均值代替
    data
    
    # 数据分割
    x_data = data.iloc[:, 1:]
    y_data = data.iloc[:, 0]
    x_train, x_test, y_train, y_test = train_test_split(x_data, y_data, test_size=0.3)
    
    # 标准化处理
    std = StandardScaler()
    x_train = std.fit_transform(x_train)
    x_test = std.transform(x_test)
    
    # 构建和训练模型
    lg = LogisticRegression()
    lg.fit(x_train, y_train)
    print('lg.coef_:
    ', lg.coef_)
    lg_predict = lg.predict(x_test)
    print('准确率:
    ', lg.score(x_test, y_test))
    print('召回率:
    ', classification_report(y_test, lg_predict, labels=[0, 1], target_names=['死亡', '存活']))

     预测结果:

       

       

  • 相关阅读:
    Python入门11 —— 基本数据类型的操作
    Win10安装7 —— 系统的优化
    Win10安装6 —— 系统的激活
    Win10安装5 —— 系统安装步骤
    Win10安装4 —— 通过BIOS进入PE
    Win10安装2 —— 版本的选择与下载
    Win10安装1 —— 引言与目录
    Win10安装3 —— U盘启动工具安装
    虚拟机 —— VMware Workstation15安装教程
    Python入门10 —— for循环
  • 原文地址:https://www.cnblogs.com/jwwzone/p/12782048.html
Copyright © 2011-2022 走看看