7.逻辑回归实践

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

利用正则化可以有效的防止过拟合。过拟合是因为在某一位置函数导数变化大,系数的值也很大因此利用正则化可以约束范数不让其太大,有效防止过拟合出现的情况。

 

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

用逻辑回归预测彩票的注数与中奖率的关系。

 1 # 导入数据包
 2 from collections import OrderedDict
 3 import pandas as pd
 4 # 数据集
 5 prizeData ={
 6     '彩票注数':[10,15,20,25,32,65,78,85,99,102,109,115,124,138,145,158,162,169,172,188],
 7     '中奖概率':[0,0,0,0,0,0,0,1,0,1,1,0,0,1,1,1,1,1,1,1]
 8 }
 9 # 调用有序字典
10 prizeDatadict = OrderedDict(prizeData)
11 pizeDF = pd.DataFrame(prizeDatadict)
12 pizeDF.head(20)
13 
14 # 提取特征,所有行与列
15 prize_x=pizeDF.loc[:,'彩票注数']
16 # 标签
17 prize_y=pizeDF.loc[:,'中奖概率']
18 # 拆分数据集
19 # 训练集与测试集
20 from sklearn.cross_validation import train_test_split
21 x_train,x_test,y_train,y_test = train_test_split(prize_x,prize_y,train_size=0.8)
22 # 逻辑回归的模型的构建
23 #将训练数据特征转换成二维数组XX行*1列
24 X_train=x_train.values.reshape(-1,1)
25 #将测试数据特征转换成二维数组行数*1列
26 X_test=x_test.values.reshape(-1,1)
27 # 导入回归数据包
28 from sklearn.linear_model import LogisticRegression
29 # 模型的创建
30 model = LogisticRegression()
31 # 训练模型
32 model.fit(X_train,y_train)
33 # 评估模型进行预测
34 model.score(X_test,y_test)
35 # 获取概率值
36 # 第一个为标签0即不中奖的概率,第二个为1的中奖的概率
37 model.predict_proba(50)

输入注数为50注后预测概率

 

posted @ 2020-04-28 11:08  阳光猪  阅读(170)  评论(0)    收藏  举报