机器学习-第七次作业-逻辑回归实践

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

1)随着模型训练的进行,模型的复杂度会增加,此时模型在训练数据集上的训练误差会逐渐减小,但是在模型的复杂度达到一定程度时,模型在验证集上的误差反而随着模型的复杂度增加而增大。此时便发生了过拟合,即模型的复杂度升高,为了防止过拟合,我们需要用到一些方法,如:early stopping、数据增强、正则化、Dropout等对模型进行训练的过程即是对模型的参数进行学习更新的过程,这个参数学习的过程往往会用到一些迭代方法,如梯度下降学习算法。Early stopping便是一种迭代次数截断的方法来防止过拟合,即在模型对训练数据集迭代收敛之前停止迭代来防止过拟合

2)正则化是通过约束参数的范数使其不要太大,所以可以在一定程度上减少过拟合情况。

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
#(1)数据读取与预处理
data = pd.read_csv('./data/LogisticRegression.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=5)
#(2)构建模型
LR_model = LogisticRegression()
#(3)训练模型
LR_model.fit(x_train, y_train)
#(4)预测模型
pre = LR_model.predict(x_test)
print('模型的正确率:',LR_model.score(x_test, y_test))
print('输出模型的分类报告:', classification_report(y_test, pre))

猜你喜欢

转载自www.cnblogs.com/sunxx428/p/12785639.html
今日推荐