Scikt-learn中使用的正则化

import numpy as np
import matplotlib.pyplot as plt
np.random.seed(666)
#生成数据
np.random.seed(666)
X = np.random.normal(0,1,size = (200,2))
y = np.array(X[:,0] ** 2 + X[:,1]  < 1.5, dtype='int')#给数据加上标签了。。
#添加一些噪音
for _ in range(20):y[np.random.randint(200)] = 1
plt.scatter(X[y==0,0],X[y==0,1],color = 'red')
plt.scatter(X[y==1,0],X[y==1,1])

from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test = train_test_split(X,y,random_state=666)
from sklearn.linear_model import LogisticRegression
log_reg = LogisticRegression()
log_reg.fit(X_train,y_train)
log_reg.score(X_train,y_train)
0.7933333333333333
log_reg.score(X_test,y_test)
0.86

决策边界绘制函数

def plot_decision_boundary(model, axis):x0, x1 = np.meshgrid(np.linspace(axis[0], axis[1], int((axis[1]-axis[0])*100)).reshape(-1, 1),np.linspace(axis[2], axis[3], int((axis[3]-axis[2])*100)).reshape(-1, 1),)X_new = np.c_[x0.ravel(), x1.ravel()]y_predict = model.predict(X_new)zz = y_predict.reshape(x0.shape)from matplotlib.colors import ListedColormapcustom_cmap = ListedColormap(['#FFAAAA', '#AAFFAA', '#AAAAFF'])plt.contourf(x0, x1, zz, linewidth=5, cmap=custom_cmap)
plot_decision_boundary(log_reg,axis=[-4,4,-4,4])
plt.scatter(X[y==0,0],X[y==0,1])
plt.scatter(X[y==1,0],X[y==1,1])

#添加多项式项
#使用多项式回归
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.preprocessing import PolynomialFeatures
def PolynomialLogisticRegression(degree):return Pipeline([('poly',PolynomialFeatures(degree=degree)),('std_scaler',StandardScaler()),('logistic_reg',LogisticRegression())])

多项式回归

poly_log_reg = PolynomialLogisticRegression(degree=2)
poly_log_reg.fit(X_train,y_train)
poly_log_reg.score(X_train,y_train)
0.9066666666666666
poly_log_reg.score(X_test,y_test)
0.94
plot_decision_boundary(poly_log_reg,axis=[-4,4,-4,4])
plt.scatter(X[y==0,0],X[y==0,1])
plt.scatter(X[y==1,0],X[y==1,1])


degree = 20,过拟合

poly_log_reg2 = PolynomialLogisticRegression(degree=20)
poly_log_reg2.fit(X_train,y_train)
poly_log_reg2.score(X_train,y_train)
0.94
poly_log_reg2.score(X_test,y_test)
0.92
plot_decision_boundary(poly_log_reg2,axis=[-4,4,-4,4])
plt.scatter(X[y==0,0],X[y==0,1])
plt.scatter(X[y==1,0],X[y==1,1])

逻辑回归正则化

#逻辑回归正则化
def PolynomialLogisticRegression(degree,C):return Pipeline([('poly',PolynomialFeatures(degree=degree)),('std_scaler',StandardScaler()),('log_reg',LogisticRegression(C = C))])
poly_log_reg3 = PolynomialLogisticRegression(degree=20,C = 0.1)
poly_log_reg3.fit(X_train,y_train)
poly_log_reg3.score(X_train,y_train)
0.84
poly_log_reg3.score(X_test,y_test)
0.92
plot_decision_boundary(poly_log_reg3,axis=[-4,4,-4,4])
plt.scatter(X[y==0,0],X[y==0,1])
plt.scatter(X[y==1,0],X[y==1,1])

def PolynomialLogisticRegression(degree,C,penalty='l2'):return Pipeline([('poly',PolynomialFeatures(degree=degree)),('std_scaler',StandardScaler()),('log_reg',LogisticRegression(C = C,penalty=penalty,solver='liblinear'))])
poly_log_reg4 = PolynomialLogisticRegression(degree=20,C = 0.1,penalty= 'l1')
poly_log_reg4.fit(X_train,y_train)
plot_decision_boundary(poly_log_reg4,axis=[-4,4,-4,4])
plt.scatter(X[y==0,0],X[y==0,1])
plt.scatter(X[y==1,0],X[y==1,1])

效果非常好!

Python机器学习:逻辑回归007scikit-learn中的逻辑回归相关推荐

  1. Python机器学习及实践——简介篇3(逻辑回归)

    前面两篇都是介绍性的文字,这篇详细介绍完整的"良/恶性乳腺癌肿瘤预测"问题的Python源代码. 根据前两篇的描述,大家可以确定"良/恶性乳腺癌肿瘤预测"的问题 ...

  2. ai逻辑回归_人工智能中的逻辑是什么?

    ai逻辑回归 人工智能逻辑 (Logic in Artificial Intelligence) Logic, as per the definition of the Oxford dictiona ...

  3. 学Java的逻辑测试题_面试中的逻辑题测试及答案.doc

    面试中的逻辑题测试及答案 面试中的逻辑题测试及答案魔豆之路 首页业界观察Android技术iOS技术分享HTML5技术JAVA & JVM测试技术分享WORDPRESS home 程序员面试秘 ...

  4. 【机器学习实战】利用sklearn中的逻辑回归对癌症分类预测-良/恶性乳腺癌肿瘤预测

    1. 数据集 数据下载地址:https://archive.ics.uci.edu/ml/machine-learning-databases/ 数据描述 (1)699条样本,共11列数据,第一列用语 ...

  5. Python机器学习:KNN算法02scikit-learn中的机器学习算法封装

    学习scikit-learn中的knn使用 并自己实现一个封装 学习scikit-learn中的knn使用 ps:代码块加标题会让字变红 python 首先引入库 在这里插入代码片 #在这个库里面所有 ...

  6. Python机器学习及实践——基础篇9(SVM回归)

    小贴士:核函数是一项非常有用的特征映射技巧,同时在数学描述上也略为复杂.因此这里不做过度引申.简单一些理解,便是通过某种函数计算,将原有的特征映射到更高维度的空间,从而尽可能达到新的高维度特征线性可分 ...

  7. 8、Python 机器学习基础知识Pandas库中的DataFrom(二)

    DataFrom DataFrame 是一种二维的数据结构,非常接近于电子表格或者类似 mysql 数据库的形式.它的竖行称之为 columns,横行跟前面的 Series 一样,称之为 index, ...

  8. python随机森林特征重要性_Python中随机森林回归的特征重要性

    当涉及到决策树时,特征重要性不是一个黑匣子.来自DecisionTreeRegressor的文档:The importance of a feature is computed as the (nor ...

  9. Python机器学习:KNN算法08scikit-learn中的Scaler

    归一化 from sklearn import datasets import numpy as np iris = datasets.load_iris() X = iris.data y = ir ...

  10. Python机器学习算法入门教程(四)

    Python机器学习算法入门教程(四) 文章目录 Python机器学习算法入门教程(四) Logistic回归算法(分类问题) 什么是分类问题? Logistic回归算法 数学解析Logistic回归 ...

最新文章

  1. 燕赵志愿云如何认证_如何获得云安全专家CCSP认证
  2. 【Fibonacci-PEG,LDPC】基于Fibonacci-PEG算法的LDPC码校验矩阵的构造
  3. Javascript ECMA-3 (数组,Date,正则)
  4. html按钮按下效果_您应该在网站中尝试的8种惊人的HTML按钮悬停效果,让您的网站令人难忘...
  5. 【python教程入门学习】零基础想转行学python,过来人提醒大家几点
  6. python3 global_Python3基础 global 在函数内部对全局变量进行修改
  7. python编程入门与案例详解-清华大学出版社-图书详情-《Python编程入门与案例详解》...
  8. java性能检测工具_老李分享:JAVA性能监控工具
  9. BeyondCompare3密钥过期如何处理。
  10. bay——RAC 表空间时数据文件误放置到本地文件系统-介质恢复.txt
  11. 51单片机:stc烧录软件下载.hex文件遇到无法下载问题的解决方法(虚拟串口占用实际下载串口)
  12. 小程序开发教程 微信小程序视频教程
  13. 三维全景从制作到上传
  14. linux系统——窗口管理器和桌面环境的区别
  15. 做视频自媒体,选择一个合适的剪辑软件很重要,这些或许适合你
  16. win10玩不了星际战甲怎么办?
  17. [乐意黎原创]车胎花纹类型 K193 和 K935 的比较
  18. 十六年开发经验的三十八岁程序员创业十年故事(一)
  19. Saturn Console部署图文示例
  20. mybatis防止sql注入原理

热门文章

  1. VB讲课笔记08:数组
  2. 最长上升子序列nlogn算法
  3. 向量的大小和方向,零向量的方向_3
  4. 2017.5.9 寻找道路 思考记录
  5. 2017.3.8 太空飞行计划问题 失败总结
  6. 【Openstack】实录手动部署Openstack Rocky 双节点(6)- Horizon
  7. 【ASK】设置网卡启动遇到的事!
  8. 计划任务 crontab、at
  9. MongoDB之 写安全(Write Concern)
  10. 使用PuTTY远程连接Linux