#实现逻辑回归
import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
iris = datasets.load_iris()
X = iris.data
y = iris.target
X = X[y<2,:2]
y = y[y<2]
plt.scatter(X[y==0,0],X[y==0,1],color = 'red')
plt.scatter(X[y==1,0],X[y==1,1],color = 'blue')

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 LogisticRegressionlog_reg = LogisticRegression()
log_reg.fit(X_train,y_train)
log_reg.score(X_test,y_test)
1.0
print(log_reg.predict_proba(X_test))
[[0.09391473 0.90608527][0.07585788 0.92414212][0.79176992 0.20823008][0.93705398 0.06294602][0.89573287 0.10426713][0.95218244 0.04781756][0.86675827 0.13324173][0.01504783 0.98495217][0.02499892 0.97500108][0.29394692 0.70605308][0.8294444  0.1705556 ][0.9617504  0.0382496 ][0.74466265 0.25533735][0.89573287 0.10426713][0.11837917 0.88162083][0.35916592 0.64083408][0.24085869 0.75914131][0.68831525 0.31168475][0.73479882 0.26520118][0.79387392 0.20612608][0.91851748 0.08148252][0.68279272 0.31720728][0.02499892 0.97500108][0.01448875 0.98551125][0.89810141 0.10189859]]
print(y_test)
[1 1 0 0 0 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0]
print(log_reg.predict(X_test))
[1 1 0 0 0 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0]
print(log_reg.coef_)
[[ 2.78090985 -2.71686283]]
def x2(x1):return (-log_reg.coef_[0][0] * x1 - log_reg.intercept_) / log_reg.coef_[0][1]
x1_plot = np.linspace(4,8,1000)
x2_plot = x2(x1_plot)
#print(x2_plot)
plt.scatter(X[y==0,0],X[y==0,1],color = 'red')
plt.scatter(X[y==1,0],X[y==1,1],color = 'blue')
plt.plot(x1_plot,x2_plot)

plt.scatter(X_test[y_test==0,0],X_test[y_test==0,1],color = 'red')
plt.scatter(X_test[y_test==1,0],X_test[y_test==1,1],color = 'blue')
plt.plot(x1_plot,x2_plot)

绘制决策边界

#绘制决策边界
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(['#EF9A9A','#FFF59D','#90CAF9'])plt.contourf(x0, x1, zz, linewidth=5, cmap=custom_cmap)
plot_decision_boundary(log_reg,axis=[4,7.5,1.5,4.5])
plt.scatter(X[y==0,0],X[y==0,1],color = 'red')
plt.scatter(X[y==1,0],X[y==1,1],color = 'blue')

#KNN决策边界
from sklearn.neighbors import KNeighborsClassifier
knn_clf = KNeighborsClassifier()
knn_clf.fit(X_train,y_train)
plot_decision_boundary(knn_clf,axis=[4,7.5,1.5,4.5])
plt.scatter(X[y==0,0],X[y==0,1],color = 'red')
plt.scatter(X[y==1,0],X[y==1,1],color = 'blue')

三种分类

knn_clf_all = KNeighborsClassifier()
knn_clf_all.fit(iris.data[:,:2],iris.target)
plot_decision_boundary(knn_clf_all,axis=[4,8.5,1.5,4.5])
plt.scatter(iris.data[iris.target==0,0],iris.data[iris.target==0,1],color = 'red')
plt.scatter(iris.data[iris.target==1,0],iris.data[iris.target==1,1],color = 'green')
plt.scatter(iris.data[iris.target==2,0],iris.data[iris.target==2,1],color = 'blue')

#增大n
knn_clf_all = KNeighborsClassifier(n_neighbors=50)
knn_clf_all.fit(iris.data[:,:2],iris.target)
plot_decision_boundary(knn_clf_all,axis=[4,8.5,1.5,4.5])
plt.scatter(iris.data[iris.target==0,0],iris.data[iris.target==0,1],color = 'red')
plt.scatter(iris.data[iris.target==1,0],iris.data[iris.target==1,1],color = 'green')
plt.scatter(iris.data[iris.target==2,0],iris.data[iris.target==2,1],color = 'blue')
#1、 模型的复杂与简单与决策边界的直接练习。
#通过决策边界可视化看到模型是否存在过拟合。





Python机器学习:逻辑回归005决策边界相关推荐

  1. python 画出决策边界_Python3入门机器学习 - 逻辑回归与决策边界

    logistic回归又称logistic回归分析,是一种广义的线性回归分析模型,以胃癌病情分析为例,选择两组人群,一组是胃癌组,一组是非胃癌组,两组人群必定具有不同的体征与生活方式等.因此因变量就为是 ...

  2. 机器学习笔记(五)逻辑回归 、决策边界、OvR、OvO

    目录 1.分类问题 2.逻辑回归 3.损失函数 4.决策边界 5.OvR与OvO 1.分类问题 机器学习中有三大问题,分别是回归.分类和聚类.线性回归属于回归任务,而逻辑回归和k近邻算法属于分类任务. ...

  3. Python机器学习:逻辑回归算法以及多类分类

    向AI转型的程序员都关注了这个号

  4. [转载] 吴恩达机器学习逻辑回归练习题:逻辑回归及规则化(python实现)

    参考链接: 了解逻辑回归 Python实现 练习题背景:网易云课堂->吴恩达机器学习课程->逻辑回归练习题 对于练习题的详细内容,和课程中推荐的octave编程实现,请见:吴恩达机器学习逻 ...

  5. 逻辑回归-非线性判定边界Python代码实现

    首先详细介绍了回归算法,没看过的小伙伴可以点开链接看一下,或者是直接在我的博客中查找. 其次,给大家介绍了线性判定边界的逻辑回归Python代码的实现,主要是通过一个例子,让大家可以自己实现一个逻辑回 ...

  6. python实现逻辑回归算法_逻辑回归算法的实现

    前言 在之前的学习中,我们已经学习了逻辑回归算法的具体数学原理及其简单的推导过程,现在,我们可以用python实现逻辑回归的算法了. 环境 python3.6 jupyter-notebook 绘制数 ...

  7. python实现逻辑回归三种方法_纯Python实现逻辑回归

    前几天使用后sklearn实现了逻辑回归,这里用纯python实现逻辑回归. 首先,我们定义一个sigmoid函数 def sigmoid(inX): #sigmoid函数 return 1.0/(1 ...

  8. 用python做逻辑回归_用Python来实现逻辑回归

    1,什么是逻辑回归(Logistic Regression) 逻辑回归用于二分分类问题,二分分类问题的标签值只有两个,比如 对于一首歌喜欢或者不喜欢:对于一件商品,喜欢或者不喜欢:对于某个考生,考试成 ...

  9. Python机器学习(三)--决策树算法

    Python机器学习(三)--决策树算法 原创  2014年07月14日 13:57:55

最新文章

  1. 小米:开源不仅要站在巨人的肩膀上,还要为巨人指方向
  2. URL加随机数的作用
  3. 区块链演进及跨域安全解决方案
  4. [转]Oracle字符串拼接的方法
  5. 全球最大域名注册商 GoDaddy 的托管账户凭证遭泄露
  6. 二叉搜索树的深度与搜索效率图解
  7. PHP设计模式——工厂方法
  8. java ,static
  9. shader 如何声明数组_聊聊如何正确向Compute Shader传递数组
  10. bootstrap-toastr 消息通知插
  11. ei会议和ei源刊的区别_ei和核心期刊的区别在哪里?
  12. c语言实验报告(四) 从键盘输入字符串a和字符串b,并在a串中的最小元素(不含结束符)后面插入字符串b....
  13. python默认数据转换_Python之数据转换
  14. linux-centos7-重置密码(rd.break 方法)
  15. ajax上传图片文件
  16. IFD-x 微型红外成像仪(模块)
  17. 简述sizeof和strlen的区别
  18. 机器自动翻译古文拼音 - 十大宋词 - 水调歌头 明月几时有 苏轼
  19. 伪相关、伪关系与中介变量——统计名词中的迷思
  20. 1. 批处理常用符号详解:

热门文章

  1. linux监测文件输出命令,Linux-USB-检测枚举-1  lsusb输出内容详细解读
  2. 小甲鱼python课后答案40讲_小甲鱼Python第二十一讲课后习题
  3. bzoj2756 [SCOI2012]奇怪的游戏 结论+网络流
  4. 辽宁计算机应用考试报名时间,2021辽宁上半年计算机应用水平考试报名时间及方法...
  5. 汇编怎么从内存地址写入连续的数字_汇编语言 第一章 基础知识
  6. nasa电池数据集_文章分享—模型与滤波算法结合的锂电池剩余寿命预测方法
  7. innosetup 同名文件替换_运维工程师必备命令之文件管理
  8. 汇编指令push,mov,call,pop,leave,ret建立与释放栈的过程
  9. Tomcat为Cookie设置HttpOnly属性
  10. 2018年测试状况调查