第七次 机器学习之逻辑回归实例
1.逻辑回归是怎么防止过拟合的?为什么正则化可以防止过拟合?(大家用自己的话介绍下)
2.用logiftic回归来进行实践操作,数据不限。
1.逻辑回归是通过正则化防止过拟合,过拟合,就是拟合函数需要顾忌每一个点,拟合函数波动大。在一些狭窄的区间里,函数值的变化大。这就意味着函数在某些小区间里的导数值(绝对值)非常大,由于自变量值可大可小,所以只有系数足够大,才能保证导数值很大而正则化是通过约束参数的范数使其不要太大,所以可以在一定程度上减少过拟合情况。
2.利用逻辑函数来预测泰坦尼克号死亡率
数据表如下:
# -*- coding:utf-8 -*- # 开发时间:2020/4/27 16:00 # 文件名称:逻辑回归实例.py #案例泰坦尼克号生还者 import pandas as pd from sklearn.linear_model import LogisticRegression from sklearn.metrics import classification_report from sklearn.model_selection import train_test_split data=pd.read_csv('./data/data.csv') #1.数据预处理 data.drop('PassengerId',axis=1,inplace=True)#删除PassengID列 data.loc[data['Sex']=='male','Sex']=1 #用数值1代替male, data.loc[data['Sex']=='female','Sex']=0 #用数值0代替female data=data.dropna() #2.构建模型 x_data=data.iloc[:,1:] #取出数据集 y_data=data.iloc[:,0] #取出目标值/标签 x_tr,x_te,y_tr,y_te=train_test_split(x_data,y_data,test_size=0.2) lg=LogisticRegression() #构建逻辑回归模型 lg.fit(x_tr,y_tr) #训练模型 #3模型预测 pre= lg.predict(x_te)#预测值 sum(pre==y_te)/len(x_te) #对的除总数,计算模型的准确率 print('准确率:',lg.score(x_te,y_te)) print("召回率:",classification_report(y_te,pre))
运行结果如下: