线性回归

线性回归

♀尐吖头ヾ 提交于 2019-11-30 18:51:43
1. 线性回归 核心公式: w = (X T X) -1 X T Y 流程伪代码: 读入数据,将数据特征x、特征标签y存储在矩阵x、y中 验证 x^Tx 矩阵是否可逆 使用最小二乘法求得 回归系数 w 的最佳估计 核心代码: 1 def standRegres(xArr, yArr): 2 xMat = mat(xArr) 3 yMat = mat(yArr).T 4 # 矩阵乘法的条件是左矩阵的列数等于右矩阵的行数 5 xTx = xMat.T * xMat 6 # 因为要用到xTx的逆矩阵,所以事先需要确定计算得到的xTx是否可逆,条件是矩阵的行列式不为0 7 # linalg.det() 函数是用来求得矩阵的行列式的,如果矩阵的行列式为0,则这个矩阵是不可逆的,就无法进行接下来的运算 8 if linalg.det(xTx) == 0.0: 9 print("This matrix is singular, cannot do inverse") 10 return 11 # 最小二乘法 12 # 求得w的最优解 13 ws = xTx.I * (xMat.T * yMat) 14 return ws 2. 局部加权线性回归 (就是中间乘上权值W) 核心公式: 参数w = (X T WX) -1 X T WY 权值Wi = exp( ||xi - x|| / ( -2*k 2

5.非线性回归

百般思念 提交于 2019-11-30 16:58:52
import tensorflow as tf import numpy as np import matplotlib.pyplot as plt # numpy生成200个随机点 x_data = np.linspace(-0.5,0.5,200)[:,np.newaxis] noise = np.random.normal(0,0.02,x_data.shape) y_data = np.square(x_data) + noise plt.scatter(x_data, y_data) plt.show() # 定义两个placeholder x = tf.placeholder(tf.float32,[None,1]) y = tf.placeholder(tf.float32,[None,1]) # 神经网络结构:1-30-1 w1 = tf.Variable(tf.random_normal([1,30])) b1 = tf.Variable(tf.zeros([30])) wx_plus_b_1 = tf.matmul(x,w1) + b1 l1 = tf.nn.tanh(wx_plus_b_1) w2 = tf.Variable(tf.random_normal([30,1])) b2 = tf.Variable(tf.zeros([1])) wx_plus_b

吴恩达机器学习_57线性回归的正则化

微笑、不失礼 提交于 2019-11-30 12:25:09
对于线性回归,我们已经推导了两种算法:(1)基于梯度下降(2)基于正规方程 (1)将 梯度下降法 运用到 线性回归正则化 常规的梯度下降法(将θ_0分离出来,因为之后对梯度下降法进行修改时会对θ_0区别对待): 用正则化对梯度下降法进行修改: 每次迭代时,都将θ_j乘以一个比1略小的数,然后进行和之前一样的操作 ,从而达到对代价函数的梯度下降 (2)将正规方程法运用到线性回归正则化 来源: https://www.cnblogs.com/vzyk/p/11585624.html

机器学习笔记[保持更新]

两盒软妹~` 提交于 2019-11-30 06:36:13
机器学习笔记[入门版] 本文是吴恩达《机器学习》的笔记,由于课程内容较为基础,所以本文对于许多数学知识有些欠缺 多变量线性回归 非线性函数线性化 这种情况下,特征的缩放就变得很重要(因为在平方甚至立方的情况下,特征的值会放大很多) 也不一定只要平方,开方也可以: 正规方程 相比梯度下降法,可以更快地获得最优解。 正规方程法更适合于较小型的问题,而梯度下降法适用于更大的数据集 正规方程不需要缩放特征 每个特征列在开头补上一个1然后转置,计算的公式是: 如果X^tX不可逆怎么办? 整体来说,这种情况还是比较少的 pinv()指令能在矩阵不可逆的情况下也求解出正确答案 需要求解的特征量大于样本数时也会造成问题。 解决不可逆问题的办法: 删除线性相关的变量 当特征数量太多时,删除一些特征,或者使用正规化方法 向量化 多使用内置函数库(老师的意思是自己造轮子比不上人家的2333) 左图是自己写的循环,右图是调用向量相乘的方法。右图由于使用了内置的乘法,效率比自己写的要高 C++也有这种,线性运算的库 再复杂一点的情况也是,向量化之后慢慢处理 Logistic回归 依然是在机器学习中常用的一种算法 线性规划在分类问题中的表现一般不太好 线性规划设置阈值的方法在分类中不好使 Logistic回归是一种分类算法,和回归分析没关系,这个名字有点问题,是历史遗留问题 Sigmoid function

2.非线性回归

家住魔仙堡 提交于 2019-11-30 06:09:20
import keras import numpy as np import matplotlib.pyplot as plt # Sequential按顺序构成的模型 from keras.models import Sequential # Dense全连接层 from keras.layers import Dense,Activation from keras.optimizers import SGD # 使用numpy生成200个随机点 x_data = np.linspace(-0.5,0.5,200) noise = np.random.normal(0,0.02,x_data.shape) y_data = np.square(x_data) + noise # 显示随机点 plt.scatter(x_data,y_data) plt.show() # 构建一个顺序模型 model = Sequential() # 在模型中添加一个全连接层 # 1-10-1 model.add(Dense(units=10,input_dim=1,activation='relu')) # model.add(Activation('tanh')) model.add(Dense(units=1,activation='relu')) # model.add(Activation

名叫“重归”的分类器器

情到浓时终转凉″ 提交于 2019-11-30 05:53:08
名叫“重归”的分类器器 以前人们触碰了不不少带“重归”两字的优化算法,重归树,随机森林的重归,线性回归,无一例外。她们全是差别于分类算法们,用于解决理和预测分析连续型标识的优化算法。殊不知逻辑回归,是这种名叫“重归”的线形分类器器,其实质是由线性回归转变而成的,这种普遍应用于归类难题中的理论重归优化算法。要理理解逻辑回归究竟是从哪里而来的呢?,得要先从线性回归刚开始。线性回归是设备器学习培训中非常简单的的重归优化算法,对随意样版,它创作1个基本上每个人了解的式子: w 被通称为实体模型的主要参数,在其中 w0被称作截距(intercept), w1~ wn被称作指数(coefficient),这一表述 式,我觉得就和人们中小学时就极其了解的 y=ax+b是一样的特性。人们能够应用向量来表达这一式子, 在其中x和w 能够被看作是1个列向量,则有: 线性回归的每日任务,就是说结构1个预测分析涵数 来投射输⼊入的特点向量x和标识值y的线性相关,而结构预测分析涵数的关键就是说找到实体模型的主要参数:wT 和 w0,知名的最小二乘法就是说用于求出线性回归中主要参数的数学方法。 根据涵数 ,线性回归应用键入的特点向量X来輸出1组连续型的标识值y_pred,以进行各种各样预测分析连续型自变量量的每日任务(例如预测分析商品销售量量,预测分析股票价格这些)。那假如人们的标识是离开型自变量量

Python3入门机器学习 经典算法与应用(网盘免费分享)

瘦欲@ 提交于 2019-11-30 03:37:42
Python3入门机器学习 经典算法与应用(网盘免费分享) 部分课程学习资料截图: 免费课程资料领取目录: Python Flask构建微信小程序订餐系统 (网盘免费分享) Python分布式爬虫必学框架Scrapy打造搜索引擎(网盘免费分享) Python3实战Spark大数据分析及调度 (网盘免费分享) Python Flask高级编程之RESTFul API前后端分离精讲 (网盘免费分享) 链接:https://pan.baidu.com/s/1rB7h53iNOweyqWTZXQv4cg 提取码:o9el ps:免费分享,如若链接失效请加群( 注意是免费免费免费分享 ) 私聊管理员即可免费领取;群——517432778,点击加群,或扫描二维码 第1章 欢迎来到 Python3 玩转机器学习 欢迎大家来到《Python3玩转机器学习》的课堂。在这个课程中,我们将从0开始,一点一点进入机器学习的世界。本门课程对机器学习领域的学习,绝不不仅仅只是对算法的学习,还包括诸如算法的评价,方法的选择,模型的优化,参数的调整,数据的整理,等等一系列工作。准备好了吗?现在开始我们的机器学习之旅!... 1-1 什么是机器学习 试看 1-2 课程涵盖的内容和理念 试看 1-3 课程所使用的主要技术栈 试看 第2章 机器学习基础 机器学习到底是什么鬼?这一章将带领大家深入理解机器学习的世界

机器学习(一):线性回归

别说谁变了你拦得住时间么 提交于 2019-11-29 22:29:09
我从去年开始就着手学习 机器学习的内容,但是学得杂,又从来没有过总结。看过周志华教授的《机器学习》和李航的《统计学习基础》,现在正在阅读《模式识别与机器学习》,这本书的深度和广度让我大开眼界。于是乎,本着找工作之前将所学知识记录下来的思想,我决定对自己所学知识做一个总结,也方便其他人参考。若有不当之处,希望指导。 线性回归 机器学习可分为监督和无监督两种。而回归任务是监督学习中非常经典的一种。 简单总结回归问题为: 来源: https://www.cnblogs.com/sayHelloToComputer/p/11537952.html

线性回归

百般思念 提交于 2019-11-29 22:03:43
线性回归是一种通过属性的线性组合来进行测试的线性模型,其目的是找到一条 直线或者一个平面或更高维的超平面,使得预测值和真实值之间的误差最小化 特点: 优点:结果具有很好的可解释性 缺点:对非线性数据拟合不好 适用数据类型:数值型和标称型数据 来源: https://www.cnblogs.com/tingtin/p/11536703.html

吴恩达 机器学习EX1学习笔记 MATLAB实现

核能气质少年 提交于 2019-11-29 14:00:53
前言 第一部分是关于线性回归 具体的概念其实在课程视频中都讲的比较清楚,但是在接触第一个练习之前,我一直不知道实际上如何coding,但是通过这种类似程序填空的形式能帮助我们理解这个实现。 单变量线性回归 1----读取数据并绘制图形 %% ======================= Part 2: Plotting ======================= fprintf('Plotting Data ...\n') data = load('ex1data1.txt'); X = data(:, 1); y = data(:, 2); m = length(y); % number of training examples % Plot Data % Note: You have to complete the code in plotData.m plotData(X, y); 2-----计算COST FUNCTION----J(/theta) %% =================== Part 3: Cost and Gradient descent =================== X = [ones(m, 1), data(:,1)]; % Add a column of ones to x theta = zeros(2, 1); %