第七次 机器学习之逻辑回归实例

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))

运行结果如下:

 

posted @ 2020-04-27 17:33  爱飞的大白鲨  阅读(557)  评论(0编辑  收藏  举报