自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(68)
  • 收藏
  • 关注

原创 逻辑回归Logistic Regression

2017年竞赛网站进行统计下面是除了军事和安全的领域机器学习算法逻辑回归是使用最多的,比第二名决策树高出20多个百分点可见逻辑回归这种算法,虽然本身很简单,但是非常有用的很多时候对于机器学习算法,并不是越复杂越好,要根据实际使用场景来选择最合适的算法没有免费的午餐定理:并没有某一种算法比另一种算法更好CNN和RNN都是深度学习,他们排名是很靠后的其实使用深度学习对数据要求很高的,需要有非常大的数据...

2018-03-31 23:47:53 141

原创 模型泛化和岭回归(未完成待定)

模型正则化(Regularization):限制参数的大小我么使用多项式回归过拟合样本数据的例子我们生成的曲线非常弯曲陡峭,尤其是两边的时候对于这个曲线,相应的参数有一些系数非常大模型正则化就是希望限制系数的大小...

2018-03-31 21:28:27 259

原创 多项式回归

之前我们的线性回归法有个很大的限制,就是假设我们数据是成线性关系的我们实际场景中,有线性关系的情况可能是比较少的更多的数据之间他们具有的是非线性关系模型泛化对于这种模型我们也可以用线性回归来计算但是他有更加强的非线性关系我们用二次曲线来拟合效果更好我们的式子y=ax^2+bx+c如果我们将x2理解成一个特征x理解成另外一个特征换句话说我们原来样本只有一个特征x现在有2个特征数据集这个式子本身依然是...

2018-03-31 21:17:21 739

原创 PCA

Principal Component Analysis主成分分析非监督学习算法作用主要用于数据降维通过降维,可以发现更便于人类理解的特征也可以进行:可视化,去燥二维平面特征1和特征2我们怎么降到1维?我们两个特征选一个吧另一个给扔了就可以了 同理对于y也一样我们已经有了两张降维方案哪个方案是更好的降维方案?右边的更好,点和点之间的距离更大,拥有更高的可区分度同时他们的距离比较大也更好的保持了原来...

2018-03-30 23:27:12 337

原创 梯度下降法

Gradient Descent 梯度下降法本身不是一个机器学习算法,既不能解决监督问题也不能解决非监督问题不能解决回归和分类问题是一种基于搜索的最优化方法作用:最小化一个损失函数另外,梯度上升法:最大化一个效用函数我们求解线性回归模型本质就是最小化损失函数我们很多时候机器学习模型求不到这个数学解我们就要使用搜索策略找到最优解我们绘制了二维坐标平面,我们这个二维平面不是描述特征平面,也不是描述每一...

2018-03-29 22:40:36 219

原创 线性回归算法

kNN算法主要用于解决分类问题,而线性回归算法主要用于解决回归问题思想非常简单,而且实现很容易许多更加强大的非线性模型的基础,无论是多项式回归,逻辑回归还是svm从某种程度上来讲都是线性回归算法的一个拓展最重要的是线性回归算法他的得到的时候非常好的可解释性的蕴含了机器学习中的很多思想,也就是因为如此在很多学界领域研究中很多时候都会尝试使用线性回归算法这样最基本最简单的方式线性回归算法每一个点代表房...

2018-03-29 22:38:10 225

原创 外部排序

如何排序10G个元素我们内存没有这么大,我们没办法放进大数组里面有一部分放在数组里面,有一部分放在外面,就是硬盘或者网络上其他节点,就是所谓的外部排序扩展的归并排序我们数据不要分左右两端,我们分很多段每一段给一个节点进行排序,每一段他的数据量我们可以控制小到放在内存里可以放得下那这个节点就可以做普通的排序,快速归并拍出来之后每个节点都是有序序列,每个有序序列都归并节点我们把大数据且分到每一个节点上...

2018-03-28 23:35:17 212

原创 网络(0)

    Alice要给Bob发一封信,这封信要求可靠和安全,我们则封信这封信必须完整发给Bob并且中间不会被别人偷看到但是我们实际的线路是怎么样的?他不可靠不安全,我们要做的就是如何在不可靠不安全的基础上建立可靠安全的渠道这个是怎么做到的呢?我们都知道,我们中间搭了一个七层架构我们现在网络协议怎么来解决这个问题的首先数据链路层,节点直接传输数据,既然不可靠不安全我们总要有一个最小传输单位,总要有一...

2018-03-27 23:19:24 182

原创 操作系统(1)

  存储和寻址存储:操作系统的存储是结构化的最下面使我们很熟悉的硬盘,硬盘的数据能够长久存放,并且硬盘都很大。现在都是多少T的硬盘和SSD硬盘。硬盘上面有内存1,2,4,8,16,只要关机就没有的,它能快速的进行随机访问,再往上就是CPU,CPU除了运算模块就是缓存,缓存有好几个级别,有些可以和CPU几个核共有的,有些是独有的,再往上面就是离CPU运算单元最近的寄存器。寄存器是最快的,他在我们CP...

2018-03-27 22:55:54 151

原创 操作系统(0)

进程和线程进程在操作系统边界比较明显,进程和进程之间相对比较独立进程里有很多线程,线程是进程里面的一部分。我们一个操作系统同时有几十几百个在运行,每个进程可能有少到几个多到几十个上百个线程在运行内存,是在进程里面的,真正的电脑是4G到8G这样一个内存,我们内存为什么限定在进程里面?是不是我把4G内存切一部分分给进程?并不是这样,这里的内存是逻辑内存我们都知道操作系统有32位操作系统和64位操作系统...

2018-03-26 21:50:05 219

原创 Docker

以Docker为例,因为Dokcer是容器技术典型的代表。这是虚拟机和容器的区别,应该这么说虚拟化的技术经过几年的发展基本上深入人心了 通过虚拟化技术我们可以通过创建虚拟机的方式来让不同的应用运行在虚拟机里面容器同样也可以做到应用的隔离,而且要比虚拟化技术更方便,更小巧 因为在容器里不需要虚拟化这一层以及我们Guest OS我们虚拟机的操作系统,他直接在我们本地的操作系统之上,实现了APP隔离这里...

2018-03-24 23:54:47 182

原创 scikit-learn的Scaler

具体将这种归一化算法用在我们机器学习过程中的时候有一个很重要的注意事项。对应我们原始数据集,我们要将他们拆分成训练数据集和测试数据集如果我们要用归一化数据来训练我们的模型显然我们先要对训练数据集进行归一化处理我们相应就要求出我们训练数据集对于的均值mean_train 方差std_train最终我们要那我们这个模型来预测数据,对于这个测试数据集也要进行归一化处理那么对于测试数据集如何归一化处理,(...

2018-03-23 21:28:25 654

原创 数据归一化

我们完成分类的时候少做了数据归一化Featur Scaling两本间的距离发现以时间为主导在这个例子中,假设两个特征 ,肿瘤大小和发现时间这两个样本的距离如果是欧拉距离,就是以时间主导了虽然样本数据中5和1相差5倍,200和100相差2倍但是由于量纲不同,导致了最终的距离其实是主要发现的天数他们之间的差距这是因为肿瘤大小之间的差值太小了 如果我们这么调整,那么肿瘤大小又被肿瘤大小所主导 如果我们不...

2018-03-22 21:48:15 354

原创 网格搜索与k近邻算法中更多超参数

p这个超参数只有在weights = "distance"的时候才有意义对于一些超参数之间是存在一定依赖关系sl为我们封装了一个专门网格搜索的方式Grid Search首先我们要定义我们搜索的参数对于我们要搜索的参数,我们定义成param_grid这是一个数组, 对于数组中每一个元素相应是一个字典,每一个字典就是我们要进行的一组网格搜索,每一组网格搜索相应要列上这一组网格搜索每一个参数对应的取值范...

2018-03-21 21:15:12 960

原创 超参数

在kNN算法中 k参数被封装成n_neighbors参数之前我们都是随意的传递3,5.究竟传什么参数最好,这就涉及机器学习非常重要的问题:超参数超参数:运行学习机器学习算法之前,需要指定的参数例如kNN算法的k与超参数对应的是模型参数模型参数:算法过程中学习的参数 kNN算法只有超参数,没有模型参数机器学习工程师要做的一个就是调参,就是调超参数因为是在算法运行前需要我们运行的参数寻找好的超参数:1...

2018-03-20 22:38:41 443

原创 分类准确度

分类的准确度:accuracy加载sklearn中手写数字这样一个库digits = datasets.load_digits()我们可以print(digits.DESCR)查看相关信息这个数据库有5620个数据每个数据有64个属性或者特征64个特征是8*8图像每个类别是10个之一 0-9不过我们的数据集并没有5620个这么多只有1797个这个y的顺序是混乱的首先我们要对原始数据集train_t...

2018-03-19 21:49:06 2237

原创 判断机器学习算法的性能

我们有一个原始数据,我们把所有原始数据当做训练数据,然后使用训练数据训练模型每当来一个新的数据,新的数据要和我们所有数据求出相应距离,找出前k小的距离然后投票新的数据具体属于那种类别,我们用全部数据得到的模型用来预测新的数据所属的类型我们要在真实的环境中使用这个模型但是会有两种情况1.模型很差怎么办? 存在真实损失比如我们要训练一个股市的模型,使用这种方式我们根本没有机会调整我们的模型,只能把这个...

2018-03-18 20:32:42 870

原创 scikit-learn的机器学习算法封装

import numpy as npfrom math import Counterfrom collections import Counter#定义了K, X_train, y_train作为训练集,之后x是我们要预测,返回对应的x的y的值def kNN_classify(k, X_train, y_train, x): assert 1 <= k <= X_tr...

2018-03-17 15:26:57 1283

原创 kNN-k近邻算法

k-Neatest Neighbors这是一个很简单,应用数学知识极少,效果也很好,可以解决机器学习算法使用过程中的诸多细节问题完整的刻画了机器学习应用的流程我们已经知道数据点分布在特征空间中,由于我们可视化方便,通常二维演示一个是恶心肿瘤,一个良性肿瘤蓝                              红新来的一个他在特征空间中对应的位置我们怎么判断是良性肿瘤还是恶性肿瘤首先我们去一个...

2018-03-16 23:00:28 287

原创 无限分类下拉列表代码

2018-03-15 22:29:28 373

原创 递归无限分类原理

我们必须要有条件判断否则就无限循环 我们递归返回值一般三种技巧 因为递归会把值丢了1 $_GLOBALS[result]2 static $result3 参数应用&输出1,2,3,4,5,6,7,8,9第一种,引用传递function deeploop(&$i=1){    echo $i;    $i++;    if($i<10){        deeploop($i...

2018-03-15 22:14:23 2216 1

原创 PHP无限分类

无限分类就是一个分类下面创建很多子类,其子类也可以创建不同子类,如此往复没有终点。1.族谱关系2.某种东西分类常用实现方法1.以父ID实现的无限分类使用递归算法。表中一个字段id,一个字段pid(父id)这样可以根据Where id = pid来查找出上一级类内容,运用递归至顶层2.以全路径实现的无限分类表中有一字段path:1,2,3使用where path like '1,2,3%'order...

2018-03-15 21:59:48 326

原创 读取数据和简单的数据探索

import numpy as npimport matplotlib as mplimport matplotlib.pyplot as pltfrom sklearn import datasets(sklearn库,我们用datasets模块)datasets模块包含了各种数据datasets.load看到很多方法dataset.loadiris(鸢尾花数据集)iris = datasets...

2018-03-15 21:50:11 305

原创 Matplotlib

对我们的数据进行可视化加载这个数据非常简单import matplotlib as mpl不过我们用到的机会并不多,除非要做非常专业的图片我们通常只使用简单的图片处理,用他的子模块import matplotlib.pyplot as pltimport numpy as npx = np.linspace(0,10,100)//表示从0-10切分100端y=np.sin(x)得到了y我们为了要绘...

2018-03-15 21:31:19 162

原创 Fancy indexing

ind = [3,5,8]x[ind]就可以返回对应索引的值,亦可以穿二维也可以x[row,col]比如x[[0,1,2],[1,2,3]]或者x[0,[1,2,3]]或者x[:2,[1,2,3]]   如果是布尔值就是对应的值,True是出现,False就是没 布尔数组很重要,比如比较x<3就出的是布尔数组   我们可以结合加减乘除获得更加复杂的逻辑比如2*x == 24-4*x可以返回可...

2018-03-14 22:09:57 258

原创 numpy的聚合计算

argmin方法返回最小值的索引argmax最大值索引排序和使用索引np.random.shuffle(x)打乱x排序就是np.sort(x)返回的是排好序的,但是本身还是乱序的本身的话是x.sort(x)axis默认值是1  把每一行排序了axis=0 就是每一列排序如果是argsort就是索引的排序np.partition(x,3)小于标定点防左侧,大于标定点方右侧,都不是有序的np.argp...

2018-03-11 19:10:02 288

原创 Numpy聚合

sum(L)求和或者np.sum(L),后者效率高np.min(L)np.max(L)每一行的和np.sum(X,axis=0)每一列的合穿的是1就是每一行的和可以理解成穿的是多少,就是把这个轴压缩掉(官方说是沿着这个轴)np.prod(X)是所有乘积 np.mean(X)平均值 np.median(X)是中位数np.percenttile(big_array,q=50)在这组数据中50%的数是小...

2018-03-11 18:58:33 375

原创 numpy的矩阵计算

给一个向量a=(0,1,2)每个元素乘以2A = []for e in a:    A.append(2*e)或者A = [2*e for e in a ]或者A = np.array(2*e for e in a)这个比较快如果是numpy的array直接2*a就可以了这个最快Universal Functions+1,-1都可以*,np.abs(x)就是取绝对值也有np.sin(x),等等另外...

2018-03-11 18:27:07 345

原创 numpy合并与分割

合并x是1X3  y是1X3我想要1X6np.concatenate([x,y])如果是竖拼接就是穿第二个参数 axis=1就行了默认是1另外np.vstack就是垂直方向叠在一起np.vstack()只能判断垂直叠加,即使维度不同水平就是hstack分割操作x=np.arange(10)x1,x2,x3=split(x,[3,7])x1=([0,1,2]) x2=([3,4,5,6)]x3=([...

2018-03-11 16:04:54 329

原创 numpy.array基本操作

reshap方法x = np.arange(15).reshape(3,5)把数组边编程3行5列x.ndim查看几维x.shape表示显示那个size参数x.size表示几个元素访问矩阵元素x[0][0],不建议这么写可以X[(0,0)],圆括号也可以省略切片x[:2,:3]前两行,前三咧 ,可以X[:2][:3]但是不是很具有语义所以要表达前两行前三列x[:2,:3]比较好同样访问单一元素也是用...

2018-03-11 14:11:55 469

原创 numpy创建数组和矩阵

np.zeros(10)得到了10个0是浮点数如果创建10个整数0np.zeros(10,dtype=int)np.zeros((3,5))获得了3行5类的0矩阵ones就是全一创建指定值np.full((3,5),666)三行五列的全是666的矩阵可以指定写np.full(shape=(3,5),fill_value=666)arange和range一样区别是可以传入浮点数np.linspace...

2018-03-10 18:31:24 1411

原创 numpy

numpy下面核心的数据结构其实就是array可以想象成数组numpy可以方便地将这个数组看做多维数组可以进而看做矩阵import numpy 加载numpy.__verision__看版本Python的list也可以表示一维,二维,多维数组,对类型不做限定的在list中每一个元素的类型也可以不一样所以他的效率比较低,因为需要检查哪种类型只有一种类型import arrayarr = array....

2018-03-10 16:57:28 172

原创 Jupyter Notebook高级-魔术命令

%run +相对地址调用了py文件就可以调用该文件的方法在模块里import 模块.文件或者 from 模块 import 文件%timeit  测试性能%timemit L = [i**2 for i in range(1000)]就出现测试时间%%timeit下面代码块%%叫做区域命令符%time的话是一次  一次不行 如果是几个小时的算法,一次就够了另外%lsmagic输出所有的魔法命令看相...

2018-03-10 12:28:41 1445

原创 Jupyter notebook

安装集成环境ANACONDA打开Jupyter notebook点击new python3输入一行python代码比如1+2点击cell点击runsells就解析出3选择Insert Cell Below多一行再runsellshelp下面的keyboardshortcuts就有页面快捷键cell 的cellType有默认Code可以改成Markdown可以供我们书写文档#一级标题 ##二级标题 ...

2018-03-09 05:16:35 178

原创 机器学习与哲学

机器学习和我们经典算法不同,他面对的是高度不确定的问题的学习,答案是不确定的,概率性的具有统计意义的答案面对这种答案,我们难免会思考一些问题,比如:这个答案真的可靠吗,我们多大程序相信这些答案,机器学习本质是什么?微软在2001年的论文,对于不同的四个机器学习的算法,在算法的角度是有优劣的,但是如果喂给我们算法足够多的数据所有算法的准确率都在稳定的上升。当数据量大到一定程度,算法的准确率差别并不大...

2018-03-09 04:14:57 823

原创 在线学习和批量学习(离线学习),参数学习和非参数学习

批量学习Batch Learning在线学习Online Learning批量学习:收集样本送给我们的机器学习训练,就可以直接将模型投入到生产环境中输入的样例不在座位学习资料优化模型了批量学习:简单问题:如何适应环境变化?第二年垃圾邮件和第一年就会很大不同不过变化速度比较慢,解决方案:定时重新批量学习每次重新进行机器学习,运算量巨大,   有时候环境变化太快了,不可能比如说股市,就是每时每分每秒都...

2018-03-09 04:04:25 2386

原创 监督学习,非监督学习,半监督学习和增强学习

分成四类监督学习,非监督学习,半监督学习和增强学习监督学习:给机器的训练数据拥有“标记”或者“答案”监督学习:银行已经积累了一定的客户信息和他们的信用卡的                  医院已经积累了一定的病人信息和他们最终确诊是否患病的情况                   市场积累了房屋的基本信息和最终成交的金额监督学习处理两大类问题:分类和回归k近邻,线性回归和多项式回归,逻辑回归,S...

2018-03-09 03:05:15 6382

原创 机器学习的主要任务

分类        和          回归分类任务:对于一张图片,是猫还是狗。给出一张手写数字图片判断0,1,2...9分类任务细分:            二分类                比如说猫和狗判断    是垃圾右键和不是垃圾邮件,  银行判断发给用户信用卡有风险还是没风险(风险高低)   判断病患良性肿瘤还是恶性肿瘤     判断股票涨还是跌             多分类  ...

2018-03-09 02:26:04 4440

原创 机器学习-数据

我们管我们手里面的数据整体叫做数据集(data-set)很有可能你手里的数据和你最终去机器学习的数据是不一样的,他们有可能是两个数据及,对于这一点我们在后面的课程中还会再强调的。那么对于一个数据集我们通常可以写成一个表格的形式。在这个数据中每一行数据成为一个样本(sample)数据集除了种类这种,都表达了样本的特征(feature)可以把一个特征都理解为一个属性。对于我们数据集来说对于每一个样本都...

2018-03-09 00:37:29 473 1

原创 Angular程序架构

两个大的版本1.5和4.0这是完全重写的Angular程序架构中间大的方块代表Angular的应用,用户可以和应用做交互,Angular本身是个客户端框架,所以开发出来的都是客户端程序,客户端程序需要与服务器做交互,给服务器传递一些数据。这是一个大的架构,我们可以看到中间的框里边是Angular的应用,至少需要包含一个模块NgModule和一个组件component首先我们来说下最关键的概念组件c...

2018-03-08 13:43:46 379

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除