zoukankan      html  css  js  c++  java
  • 逻辑回归实践

    逻辑回归是怎么防止过拟合的?为什么正则化可以防止过拟合?

    逻辑回归是通过正规化防止过拟合的。

    在训练数据不够多时,常常会导致过拟合。L2正则化就是在代价函数后面再加上一个正则化项:

    C0代表原始的代价函数,后面那一项就是L2正则化项, 过拟合的时候,拟合函数的系数往往非常大。所有参数w的平方的和,除以训练集的样本大小n。λ就是正则项系数,权衡正则项与C0项的比重。另外还有一个系数1/2,1/2经常会看到,主要是为了后面求导的结果方便,后面那一项求导会产生一个2,与1/2相乘刚好凑整。所以正规化通过约束参数的范数使其不要太大,所以在一定程度内可以减少过拟合。

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

    import pandas as pd
    from sklearn.linear_model import LogisticRegression
    from sklearn.model_selection import train_test_split
    from sklearn.metrics import classification_report
    # 数据读取与预处理
    data = pd.read_csv('201706120017赖志豪.csv')
    x = data.iloc[:,1:]
    y = data.iloc[:,0]
    x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.2,random_state=6)
    # 构建逻辑回归模型
    LR_model = LogisticRegression()
    # 训练模型
    LR_model.fit(x_train,y_train)
    # 预测模型
    pre = LR_model.predict(x_test)
    print('模型的正确率:',LR_model.score(x_test,y_test))
    print('输出模型的分类报告:
    ',classification_report(y_test,pre))
    

  • 相关阅读:
    3、看源码MVC中的Controllr的Json方法
    2、MVC+IOC容器+ORM结合
    1、看源码MVC如何实例化控制器?
    6、UnityConfig实现AOP
    5、动态代理AOP实现-DynamicProxy模式
    1、面向切面编程
    通过js看类似C#中的回掉
    C#新开一个线程取到数据,如何更新到主线程UI上面
    2.C#自定义Attribute
    1.C#中几个简单的内置Attribute
  • 原文地址:https://www.cnblogs.com/lzhdonald/p/12781219.html
Copyright © 2011-2022 走看看