逻辑回归实践

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

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

在训练数据不够多时,常常会导致过拟合。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('输出模型的分类报告:\n',classification_report(y_test,pre))

逻辑回归实践

 

上一篇:深入理解搜索引擎-排序算法


下一篇:MYSQL中的int(11)到底代表什么意思?