• 7.逻辑回归实践


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

     过拟合问题产生的原因便是数据量太少,而变量过多,导致虽然能够拟合所有的数据,但是曲线比较曲折。我们从以下几个方面防止过拟合:在数据层面,加大样本量;通过特征选择减少特征量。在算法层面,引入正则化。正则化可以提高泛化能力,如果正则化参数设置得足够大,权重矩阵被设置为接近于0的值,直观理解就是把多隐藏单元的权重设为0,于是基本上消除了这些隐藏单元的许多影响。如果是这种情况,这个被大大简化了的神经网络会变成一个很小的网络,小到如同一个逻辑回归单元,可是网络深度却很深,它会使这个网络从过度拟合的状态更接近高偏差状态。但是会存在一个中间值,于是会有一个接近“Just Right”的中间状态。

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

    使用逻辑回归算法预测学生是否被高校录取

    from sklearn.linear_model import LogisticRegression
    from sklearn.model_selection import train_test_split
    from sklearn.metrics import classification_report
    import pandas as pd
    #1、加载数据集
    data=pd.read_csv('./data/LogisticRegression.csv')
    x_data=data.iloc[:,1:]
    y_data=data.iloc[:,0]
    #2、划分训练集和测试集
    x_train,x_test,y_train,y_test=train_test_split(x_data,y_data,test_size=0.2,random_state=5)
    #3、构建模型并训练模型
    model_LR=LogisticRegression()
    model_LR.fit(x_train,y_train)
    #4、模型预测
    y_pre=model_LR.predict(x_test)
    print('预测的录取情况:',y_pre)
    print('真实的录取情况:',y_test)
    print('分类报告:
    ',classification_report(y_test,y_pre))
    print('逻辑回归的准确率为:{0:.2f}%'.format(model_LR.score(x_test,y_test)*100))

    运行结果:

    预测的录取情况: [0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0
     0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
     0 0 0 0 1 0]
    真实的录取情况: 218    0
    191    0
    117    0
    50     0
    348    0
          ..
    184    0
    140    0
    107    0
    241    1
    48     0
    Name: admit, Length: 80, dtype: int64
    分类报告:
                   precision    recall  f1-score   support
               0       0.68      0.93      0.79        54
               1       0.43      0.12      0.18        26
        accuracy                           0.66        80
       macro avg       0.56      0.52      0.48        80
    weighted avg       0.60      0.66      0.59        80
    逻辑回归的准确率为:66.25%
  • 相关阅读:
    IDEA常用快捷指令整理
    Python dict 字典
    内联函数
    【MFC】编辑框 CEdit Ctrl控件自动换行设置
    mysql 多sql文件恢复方案
    Linux: 用64位的系统,能编译32位的程序吗?
    C++ 遍历数组
    工业现场传感器传感器为什么采用电流形式输出?
    【转】电磁阀、电磁铁的工作原理说明
    PCB板强弱电隔离距离不够导致损坏和问题检查记录
  • 原文地址:https://www.cnblogs.com/zzj420133722/p/12780593.html
Copyright © 2020-2023  润新知