ex1.m %% Machine Learning Online Class - Exercise 1: Linear Regression % Instr...
这只是我的个人理解: 在Python的函数中偶尔会看到函数定义的上一行有@functionName的修饰,当解释器读到@的这样的修饰符之后,会先解析@后的内容,直接就把@下一行的函数或者类作为@后边的函数的参数...,然后将返回值赋值给下一行修饰的函数对象。...比如: @a @b def c(): … python会按照自下而上的顺序把各自的函数结果作为下一个函数(上面的函数)的输入,也就是a(b(c())) def funA(a):...>>> ================================ RESTART ================================ >>> funB funA 则整个程序的执行过程就是
参考链接: 了解逻辑回归 Python实现 逻辑回归定义 logistic回归又称logistic回归分析,是一种广义的线性回归分析模型,常用于数据挖掘,疾病自动诊断,经济预测等领域。...逻辑回归为发生概率除以没有发生概率再取对数,且因变量为二分类的分类变量或某事件的发生率。 例如,探讨引发疾病的危险因素,并根据危险因素预测疾病发生的概率等。...***摘自百度百科 逻辑回归的使用 逻辑回归属于回归算法,但个人感觉这是一个分类的算法,可以是二分类,或者多分类,多分类不太好解释,而且如果自变量中含有分类变量,需要我们转化成虚拟变量(也叫哑元变量...逻辑回归的实现 下面是一个我在网上查看到的二分类逻辑回归案例,数据是自己生成的,稍微改了几处地方,使用python3,或者anaconda。 ...此图代表了逻辑回归的生长曲线,趋势基本是一致的; 机器学习分类算法有很多,回归模型我目前常用的就是多元回归和逻辑回归了,都是监督学习类别。
__name__用来显示函数的名称,__doc__用来显示文档字符串也就是("""文档字符串""")这里面的内容 2.首先我们来看不加@wraps的例子 def my_decorator(func):...Test function wrapper decorator 我们来看执行的整个过程:在调用test()函数时,首先会调用装饰器(将test作为参数传入到装饰器中),执wrapper函数,再执行test...但我们可以看到test函数的名字:__name__为wrapper,__doc__为decorator,已经不是原来的test函数了。...Test function test Testword 我们会发现,test函数的__name__和__doc__还是原来的,即函数名称和属性没有变换。
参考资料:https://www.cnblogs.com/hardy-test/p/6037982.html 一个星(*):表示接收的参数作为元组来处理 两个星():表示接收的参数作为字典来处理 举个栗子
参考: https://www.liujiangblog.com/course/python/83
/usr/bin/python 其他有的可能是 python2 或者 python3 都是一个样子,一开始我以为是像 C++ 那样子一样的头文件,后来把他当做注释了。.../usr/bin/python 作用: 告诉操作系统在执行你的这个脚本时,需要调用的python 解释器是在 usr/bin 下的,这样她(操作系统)就能找到了。 #!.../usr/bin/env python 作用: 如果你很调皮的把 python 没有装到其他地方,再向上面那样子,操作系统就找不到了,那不就不能执行了。...所以,这个时候你要告诉她(操作系统)你把 python 安装到哪里去了,可你总不能写一大串的路径又或者每次换个地方就要重新写一遍吧,这个时候就可以告诉她(操作系统)这里东西就放在环境设置里面,你自己根据环境设置去找就可以啦...所以,你就可以任意的安装在不同地方了。
参考链接: Python中的逻辑门 python底层的逻辑算法: 回归:回归是统计学的一个重要概念,其本意是根据之前的数据预测一个准确的输出值。...逻辑回归是《机器学习》这门课的第三个算法,它是目前使用最为广泛的一种学习算法,用于解决分类问题。与线性回归算法一样,也是监督学习算法。...诸如:新闻分类、基因序列、市场划分等的一些根据特征划分的,用的都是逻辑回归。 输出的最终预测结果为:正向类(1)、负向类(0)。 ...逻辑回归模型是一个“S”形的函数: 代价函数:代价函数 — 误差的平方和 — 非凸函数—局部最小点 。 ...train_X,theta,train_y,'训练集') showDivide(test_X,theta,test_y,'测试集集') train_y1=predict(train_h) print('预测的结果是
常用的分类与预测算法 回归分析 决策树 人工神经网络 贝叶斯网络 支持向量机 其中回归分析包括: 线性回归---自变量因变量线性关系,最小二乘法求解。...非线性回归--自变量因变量非线性关系,函数变换为线性关系,或非线性最小二乘方法求解。 logistic回归--因变量一般有1和0两种取值,将因变量的取值范围控制再0-1范围内,表示取值为1的概率。...岭回归--要求自变量之间具有多重共线性,是一种改进最小二乘法的方法。 主成分回归--要求自变量之间具有多重共线性,是对最小二乘法的方法的改进,可以消除自变量间的多重共线性。...一般自变量和因变量之间存在线性关系的时候,就可以用线性回归的方法,而两者之间呈现的是某种曲线特性时,就用非线性回归,当自变量之间出现多重共线时,用最小二乘估计的回归系数不准确,则主要用岭回归和主成分回归法...此处的logistics回归属于概率性非线性回归,对于二分类问题,y只有是否两个值,1和0,在自变量x1,x2,x3作用下y取值为是的概率为p,取值为否的概率为1-p。
一、作用域介绍 概念 变量可以使用的范围,程序的变量并不是哪个位置都可以访问的,访问的权限决定于变量时在哪里定义的 作用域的划分 局部作用域(L) 闭包函数外到函数中(E) 全局作用域(G) 内建作用域...(B) 变量查找的规则 L->E->G->B 注意 Python 中只有模块(module),类(class)以及函数(def、lambda)才会引入新的作用域,其它的代码块(如 if/elif/else.../、try/except、for/while等)是不会引入新的作用域的,也就是说这这些语句内定义的变量,外部也可以访问 二、体现作用域 num1 = 1 if 1: num2 = 2...直接修改全局变量相当于在局部作用域中新建一个局部变量 print("1-", num) func() print("2-", num) 四、修改嵌套作用域中变量的值 a = 1 def func1...(): a = 2 c = 3 def func2(): nonlocal a a = 100 #想要修改嵌套作用域中的变量,需要将其声明成嵌套作用域中的变量
变量作用域 Python能够改变变量作用域的代码段是 、 class 、 lamda....def if/elif/else、try/except/finally、for/while 并不能涉及变量作用域的更改,也就是说他们的代码块中的变量,在外部也是可以访问的 变量搜索路径是:局部变量->全局变量...局部变量vs全局变量 局部变量:在函数内部,类内部,lamda.的变量,它的作用域仅在函数、类、lamda里面 全局变量:在当前py文件都生效的变量 global的作用 让局部变量变成全局变量 def...(Python);Python内建函数的名字空间 这是我们代码找变量的顺序,倘若最后一个python内建函数也没有找到的话就会报错了 什么是内建函数呢?...,所以只要记得Python内建函数作用域 > 全局变量作用域 > 局部变量作用域就好了
参考链接: Python property() 1、为什么要使用property这个单词 我们首先来分析一下为什么但是龟哥会用property这个单词,而不用foo,bar这样的单词呢,想必一定有他的想法...property ——> 属性 虽然我们不能猜测出(当然我不提倡乱猜)它的具体意思,但是我们可能应该想到,被他修饰的应该和属性的意思有些许联系的。 ...2、具体分析 我们知道人的身高和臂长大致呈1:1的关系,现在我们想通过一个人的身高求得一个人臂长,可以像下面的方法或得 方法一 class Person(object): def __init...其实,还有一个原因就是,方法一中通过方法的形式获取属性,我们就会想,是方法就想这个方法需不需要参数的问题。...显然通过property很好的解决了这个问题,既然我们可以阅读代码时,一眼就能想到这是一个属性值(或者我们想要的值而已),还很好的避免的传参的问题。
https://blog.csdn.net/haluoluo211/article/details/78761582 逻辑回归模型所做的假设是: ?...那么,给定一个逻辑回归模型,如何来调整参数θ?...当y=1的时候,后面那一项没有了(为1),那就只剩下x属于1类的概率,当y=0的时候,第一项没有了(为1),那就只剩下后面那个x属于0的概率(1减去x属于1的概率) 求θ最优值相当于求,θ使得已知样本出现的最大概率...dtype={'A': np.float64, 'B': np.float64, 'C': np.int64}) # add bias w0 (添加逻辑回归的第一项即偏置...//blog.csdn.net/zouxy09/article/details/20319673 http://blog.yhat.com/posts/logistic-regression-and-python.html
,不管是给有兴趣的小伙伴做参考,还是加深自己的学习理解,都是有一定裨益的。...不过,这个题目也是想了好一会,专业方向深度学习,当下啃机器学习,折磨了一个多月,才刚捋顺线性回归。 索性,就把这个系列放到Python里面吧。 当然,这个板块的内容必须是高能的!!!...反正这一个月时间,就耗这上面了,一个周学a,一个周学b,再花点时间捋顺整个过程…… 基础内容直接放链接了: Python-matplotlib画图(莫烦笔记) Chenkc,公众号:AI机器学习与深度学习算法用.../usr/bin/env python3.6 # -*- coding: utf-8 -*- # @Time : 2020-11-07 12:22 # @Author : Ed Frey # @...后面画图部分的代码,是我自己补充设计的,基本功能是:在不断迭代寻找目标最优解的过程中,将当前解的效果可视化,也就是可以通过图形查看当前参数对应的直线效果。 截取了其中输出的几幅效果图: ? ?
前言 先来介绍下这个logistic回归 首先这玩意是干啥的 我个人的理解,logistic回归就是通过不断进行梯度下降,改变w和b,从而使得函数值与实际值平均差值越来越小 logistic回归使用的激活函数是...sigmoid函数,函数的图像和函数如下图所示 看这个函数图像就可以得出sigmoid的函数值永远在0,1之间,且当x趋于正无穷时,y趋向于1,x趋于负无穷时,y趋向于0 函数公式为 同时该回归使用的损失函数也与其他不同...来看下百度百科的解释 顾名思义,梯度下降法的计算过程就是沿梯度下降的方向求解极小值(也可以沿梯度上升方向求解极大值)。...这就很清楚了 也就是我们目的就是损失函数对w,b求导,然后通过多次的梯度下降,从而达到使得损失函数最小的目的 对w,对b的求导公式就是直接链式求导就好 这里给出损失函数L对激活函数a的求导公式 这里a是预测值...,太大会导致出现错过极小值的情况 w就是参数值,dl/dw就是损失函数对w的偏导数 这样我们大概了解了之后,就可以开始写代码了 实现 这次是直接将回归用于如下图这种只有一个隐藏层的神经网络中 总共有三个
岭回归与多项式回归的最大区别就是损失函数上的区别。岭回归的代价函数如下: ? 为了方便计算导数,通常也会写成以下形式: ?...岭回归的代价函数仍然是凸函数,因此可以利用梯度等于0的方式求得全局最优解: ?...上述方程与一般线性回归方程相比多了一项λI,其中I表示单位矩阵,加入XTX是一个奇异矩阵(不满秩),添加这一项之后可以保证该项可逆,由于单位矩阵上的对角元素均为1,其余元素都为0,看起来像是一条山岭,因此而得名...weights X = np.insert(X, 0, 1, axis=1) y_pred = X.dot(self.w) return y_pred 岭回归的核心就是...return self.alpha * 0.5 * w.T.dot(w) def grad(self, w): return self.alpha * w 然后是岭回归的核心代码
代码来源:https://github.com/eriklindernoren/ML-From-Scratch 首先定义一个基本的回归类,作为各种回归方法的基类: class Regression(object...需要注意的是,对于原始的输入X,需要将其最前面添加一项为偏置项。predict()用于输出预测值。...接下来是简单线性回归,继承上面的基类: class LinearRegression(Regression): """Linear model....') plt.savefig("test2.png") plt.show() if __name__ == "__main__": main() 利用sklearn库生成线性回归数据...utils下的mean_squared_error(): def mean_squared_error(y_true, y_pred): """ Returns the mean squared
Lasso回归于岭回归非常相似,它们的差别在于使用了不同的正则化项。最终都实现了约束参数从而防止过拟合的效果。...但是Lasso之所以重要,还有另一个原因是:Lasso能够将一些作用比较小的特征的参数训练为0,从而获得稀疏解。也就是说用这种方法,在训练模型的过程中实现了降维(特征筛选)的目的。...Lasso回归的代价函数为: ? 上式中的 w 是长度为 n 的向量,不包括截距项的系数 θ0 , θ 是长度为 n+1 的向量,包括截距项的系数 θ0 , m 为样本数, n 为特征数....lasso回归的核心就是l1正则化,其代码如下所示: class l1_regularization(): """ Regularization for Lasso Regression """...0.024590164 -6.4 0.027322404 -0.5 0.030054645 0.5 0.032786885 -2.4 0.035519126 -7.5 然后是lasso回归的运行代码
'@'符号用作函数修饰符是python2.4新增加的功能,修饰符必须出现在函数定义前一行,不允许和函数定义在同一行。也就是说@A def f(): 是非法的。...一个修饰符就是一个函数,它将被修饰的函数做为参数,并返回修饰后的同名函数或其它可调用的东西。...\master下的webapp.py。...自补2 我们知道,Python中并没有提供直接的接口支持,但是接口技术又是现代软件设计中的重要技术,借助于它可以极大地减小软件模块间的耦合度。...于是,借助于zope.interface,python中也可以引入接口技术。
块级作用域??...python中可以执行成功,,这是因为在Python中是没有块级作用域的,代码块里的变量,外部可以调用,所以可运行成功; 函数局部作用域 def func(): name = "zxt"...print(name) name 'name' is not defined name变量只在func()函数内部中生效,所以在全局中是没法调用的; 作用域误区 name = "lzl" def...f1(): print(name) def f2(): name = "eric" f1() f2() lzl 我们都知道,Python中有作用域链,变量会由内到外找,先去自己作用域去找...,原因是Python是静态作用域(词法作用域),因此在编译阶段,就决定了变量的读取方式。
领取专属 10元无门槛券
手把手带您无忧上云