最近在研究Iris花的逻辑回归分类中看到了如下的代码:
from sklearn.linear_model import LogisticRegression
X = iris["data"][:, 3:]
y=(iris["target"]==2).astype(np.int)
log_reg = LogisticRegression()
log_reg.fit(X, y)
X_new=np.linspace(0, 3, 100).reshape(-1, 1)
y_prob=log_reg.predict_proba(X_new)
decision_boundary=X_new[y_prob[:, 1] >=0.5][0]
reshape(-1, 1)第一个"-1"参数代表将数据拉平为一行,第二个1代表对于行矩阵进行处理,每个行包含一个列。下面有个demo示例:
z = np.array([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]])
z.shape
(3, 4)
z.reshape(-1)
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])
z.reshape(-1,1)
array([[ 1],
[ 2],
[ 3],
[ 4],
[ 5],
[ 6],
[ 7],
[ 8],
[ 9],
[10],
[11],
[12]])
其实(-1,1)的意义就是行数未知,列数确定是1的意思;所谓的未知就是根据实际情况来生成。可以推知reshape(1,-1)的含义。
第二个难点就是计算decision_boundary的时候:
decision_boundary=X_new[y_prob[:, 1] >=0.5][0]
其实这段语句的涵义是:首个满足y_prob[:, 1] >=0.5,对应的X_new的值。那么什么是y_prob[:, 1]呢?y_prob的获取是通过predict_prob,所以天生就是会把所有的可能值都就算一边,这里每一项都会把是Iris和NotIris的概率都计算一遍的;y_prob[:, 1]就是代表所有的Iris的判断结果,>=0.5比较好理解,就是其中判定为属于Iris的(因为>=0.5就代表倾向于Iris)的首个值;这个值就是Iris和非Iris的分界线,这个就是decision_boundary的涵义。
参考
https://*.com/questions/18691084/what-does-1-mean-in-numpy-reshape
Iris分类以及数组reshape想到的的更多相关文章
-
php数组函数(分类基本数组函数,栈函数,队列)
php数组函数(分类基本数组函数,栈函数,队列函数) 一.总结 1.常用数组函数 函数 描述 array() 创建数组. array_combine() 通过合并两个数组来创建一个新数组. array ...
-
用决策树(CART)解决iris分类问题
首先先看Iris数据集 Sepal.Length--花萼长度 Sepal.Width--花萼宽度 Petal.Length--花瓣长度 Petal.Width--花瓣宽度 通过上述4中属性可以预测花卉 ...
-
PHP递归无限分类,数组和直接输出。
去年在一家公司做项目开发,用到商城三级分类,看了之前的程序员写的分类也是头大,三级分类,循环套循环三次( foreach(){ foreach(){ foreach(){ } } } ),然后写了一个 ...
-
seaborn分类数据可视化
转载:https://cloud.tencent.com/developer/article/1178368 seaborn针对分类型的数据有专门的可视化函数,这些函数可大致分为三种: 分类数据散点图 ...
-
从Iris数据集开始---机器学习入门
代码多来自<Introduction to Machine Learning with Python>. 该文集主要是自己的一个阅读笔记以及一些小思考,小总结. 前言 在开始进行模型训练之 ...
-
【算法之美】求解两个有序数组的中位数 — leetcode 4. Median of Two Sorted Arrays
一道非常经典的题目,Median of Two Sorted Arrays.(PS:leetcode 我已经做了 190 道,欢迎围观全部题解 https://github.com/hanzichi/ ...
-
php用压栈的方式,循环遍历无限级别的数组(非递归方法)
php用压栈的方式,循环遍历无限级别的数组(非递归方法) 好久不写非递归遍历无限级分类...瞎猫碰到死老鼠,发刚才写的1段代码,压栈的方式遍历php无限分类的数组... php压栈的方式遍历无限级别数 ...
-
php数组声明、遍历、数组全局变量使用小结
数组的本质:管理和操作一组变量,成批处理,下面为大家介绍下数组的分类.数组的分类及使用说明,感兴趣的朋友可以了解下哈 php教程:数组声明,遍历,数组全局变量 <? /* * 一.数组的概 ...
-
Yii中用递归方法实现无限级分类
用递归方法实现多级分类,适合分级不太多的分类,如三到四级. 数据库结构: Model中(Category.php) /** * 获取全部分类信息 */ public function getAllca ...
随机推荐
-
Python编码记录
字节流和字符串 当使用Python定义一个字符串时,实际会存储一个字节串: "abc"--[97][98][99] python2.x默认会把所有的字符串当做ASCII码来对待,但 ...
-
1-学习前言&;C语言概述
[C语言]01-学习前言&C语言概述 参考自 http://www.cnblogs.com/mjios/archive/2013/03/12/2956508.html#label2 C语言是我 ...
-
App.domain http->;https
App.domain = `${location.origin}/toa-mgw/rest/gateway`.replace(/http:\/\//, 'https://');
-
JavaScript学习笔记——流程控制
javascript流程控制流程:就是程序代码的执行顺序.流程控制:通过规定的语句让程序代码有条件的按照一定的方式执行. 一.顺序结构 按照书写顺序来执行,是程序中最基本的流程结构. 二.选择结构(分 ...
-
fcitx的安装_配置
sudo apt-get purger ibus 安装Fcitx:sudo apt-get install im-switch fcitx #修改当前用户的默认输入法, 具体看man im-switc ...
-
(转)常用CSS优化总结——网络性能与语法性能建议
原文地址:http://www.cnblogs.com/dolphinX/p/3508657.html 在前端面试中最常见的问题就是页面优化和缓存(貌似也是页面优化),被问了几次后心虚的不行,平然平时 ...
-
JQUERY prop与attr差额
1. 1-9-1之前和之后之间的差 <html> <script src="Js/jquery-1.9.0.js" type="text/javasc ...
-
JQuery操作元素的属性与样式及位置 复制代码
<script type="text/javascript" src="JQuery/jquery-1.5.1.js"></script> ...
-
redis命令行批量删除匹配到的key
执行命令如下 redis-cli -h 12.132.30.21 -p 6379 -a 2016 -n 4 keys "ecard*" | xargs redis-cli -h 1 ...
-
Linux下查看tomcat版本
进入到tomcat的bin目录下,再执行./version.sh tomcat版本:7.0