这一节很简单,都是高中讲过的东西 简单线性回归:y=b0+b1x+ε.b1=(Σ(xi-x–)(yi-y–))/Σ(xi-x–)ˆ2       b0=y--b1x-    其中ε取 为均值为0的正态分布 多元线性回归差不多 我自己写了程序,练习一下面向对象编程 import numpy as np class SimpleLinearRegression: def __init__(self): self.b0=0 self.b1=0 def fit(self,X,Y): n=len(X) d…
最近开始学习机器学习,以下会记录我学习中遇到的问题以及我个人的理解 决策树算法,网上很多介绍,在这不复制粘贴.下面解释几个关键词就好. 信息熵(entropy):就是信息不确定性的多少 H(x)=-ΣP(x)log2[P(x)].变量的不确定性越大,熵就越大. 信息获取量(Information Gain):这是ID3算法中定义的一个选择属性判断结点的算法.Gain(A)=H(D)-HA(D).就是本的信息熵与下一级的信息熵之差.用来确定信息获取量的多少,信息获取量最多的即选择为本级的判断属性.…
关键词: 梯度下降:就是让数据顺着梯度最大的方向,也就是函数导数最大的放下下降,使其快速的接近结果. Cost函数等公式太长,不在这打了.网上多得是. 这个非线性回归说白了就是缩小版的神经网络. python实现: import numpy as np import random def graientDescent(x,y,theta,alpha,m,numIterations):#梯度下降算法 xTrain =x.transpose() for i in range(0,numIterati…
KNN(K Nearest Neighbor) 还是先记几个关键公式 距离:一般用Euclidean distance   E(x,y)√∑(xi-yi)2 .名字这么高大上,就是初中学的两点间的距离嘛. 还有其他距离的衡量公式,余弦值(cos),相关度(correlation) 曼哈顿距离(manhatann distance).我觉得针对于KNN算法还是Euclidean distance最好,最直观. 然后就选择最近的K个点.根据投票原则分类出结果. 首先利用sklearn自带的的iris…
关键词: 输入层(Input layer).隐藏层(Hidden layer).输出层(Output layer) 理论上如果有足够多的隐藏层和足够大的训练集,神经网络可以模拟出任何方程.隐藏层多的时候就是深度学习啦 没有明确的规则来设计最好有多少个隐藏层,可以根据实验测试的误差以及准确度来实验测试并改进. 交叉验证方法(cross -validation):把样本分为K份,取一份为测试集,其他为训练集.共取K次,然后取其平均值 BP的步骤 1.初始化权重(weight)以及偏向(bias),随…
SVM分类器里面的东西好多呀,碾压前两个.怪不得称之为深度学习出现之前表现最好的算法. 今天学到的也应该只是冰山一角,懂了SVM的一些原理.还得继续深入学习理解呢. 一些关键词: 超平面(hyper plane)SVM的目标就是找到一个超平面把两类数据分开.使边际(margin)最大.如果把超平面定义为w*x+b=0.那么超平面距离任意一个支持向量的距离就是1/||w||.(||w||是w的范数,也就是√w*w’) SVM就是解决 这个优化问题.再经过拉格朗日公式和KKT条件等数学运算求解得到一…
这个算法.我个人感觉有点鸡肋.最终的表达也不是特别清楚. 原理很简单,从所有的样本中选取Euclidean distance最近的两个样本,归为一类,取其平均值组成一个新样本,总样本数少1:不断的重复,最终样本数为1.这样的话就形成了一个树,每个节点要不有两个子节点,要不没有子节点. 这个算法也大概能分出来类,但是实用性我觉得不是很强. 源代码 from numpy import * class cluster_node: def __init__(self,vec,left=None,righ…
一些概念 相关系数:衡量两组数据相关性 决定系数:(R2值)大概意思就是这个回归方程能解释百分之多少的真实值. Kmeans聚类大致就是选择K个中心点.不断遍历更新中心点的位置.离哪个中心点近就属于哪一类.中心点的更新取此类的平均点. 优点:速度快,原理简单 缺点:最终结果与初始点选择有段,容易陷入局部最优.并且还要提前知道K值 代码 import numpy as np def kmeans(X,k,maxIt): numPoints,numDim= X.shape dataSet=np.ze…
最近又重新安排了一下我的计划.准备跟着老男孩的教程继续学习,感觉这一套教程讲的很全面,很详细.比我上一套机器学习好的多了. 他的第一阶段是Python基础,第二阶段是高等数学基础,主要将机器学习和深度学习数学算法.第三阶段是算法基础提高,第四阶段....额,竟然没有,好像没有.第五阶段是数据分析与挖掘,第六阶段是自然语言处理,第七阶段是面试技巧提高.第四阶段我猜应该是计算机视觉吧,没有就没有吧,正好我专门报了一个计算机视觉的课. 所以今后半年多的时间里,我都会跟着这个系统课程进行学习.大学嘛,也…
本文转载自:https://juejin.im/post/5a924df16fb9a0634514d6e1 机器学习之线性回归(纯python实现) 线性回归是机器学习中最基本的一个算法,大部分算法都是由基本的算法演变而来.本文着重用很简单的语言说一下线性回归. 线性回归 包括一元线性回归和多元线性回归,一元指的是只有一个x和一个y.通过一元对于线性回归有个基本的理解. 一元线性回归就是在数据中找到一条直线,以最小的误差来(Loss)来拟和数据. 上面提到的误差可以这样表示,假设那条直线如下图:…