机器学习之梯度下降

机器学习之梯度下降法

11/17/2018 5:16:17 PM
最近生病了,好久也没来玩博客,一直想学的机器学习也不知从何开始,所以就…在这里写个开头激励一下自己尽快安排时间去学。此刻脑袋处于昏昏沉沉状态,算了接下来我打算休息一下看个电影缓冲一下…先这样保存为草稿吧。

正题

11/218/2018 2:18:06 PM
一,今天去看了网课,从最简单的数据拟合,回归,以及梯度降维开始学习吧,首先我把机器学习的自我认识先写下来吧。
总的来说机器学习就是计算机通过数据产生学习算法,然后积累经验,,,算了,自我感觉也说不出什么来。。。
二,在机器学习网课上我了解到机器学习任务中有分监督学习和非监督学习,这里我就不解释他俩具体含义了。然后今天我打算先了解一下监督学习。

  • 监督学习
  • 非监督学习

开始

在监督学习中最重要的两个东西分别是回归和分类预测。这里,我准备拿一份数据来试手一下回归预测,例子所涉及的脚本都是用Python编写的,接下来将会具体的实现一个数据的爬取、分析以及训练最终预测流程呈现出来。

一.获取数据
我是从网课老师那里直接下载过来的数据,这份数据没有具体含义,二维数据,当然你可以把它富裕具体含义,反正方法是一样的。
数据样本
很显然数据是最简单的二维数据,我们可以直接把文本数据读进来,然后两列分布赋予x,y值,先从最简单的可视化分析开始。
Python代码如下:

from numpy import *

filename='F://机器学习learnning//test.txt'
f=open(filename)
contents = f.readlines()
length = len(contents) # 得到文件内容的行数
Mat = zeros((length, 3)) # 创建一个空矩阵用于存储文件内容
index = 0
for line in contents:
    line = line.strip() # 去除每一行的换行符
    data = line.split('\t')
    Mat[index, :] = data # 将每一列数据按照行索引存放到空矩阵
    index += 1

二.画图分析
用第三方库matplotlib画散点图

import matplotlib as mpl
import matplotlib.pyplot as plt


plt.rcParams['savefig.dpi'] = 300 #图片像素
plt.rcParams['figure.dpi'] = 100 #分辨率
x=Mat[:,1]
y=Mat[:,2]
plt.scatter(x, y,alpha=0.3,c='g')
plt.xlabel("x")
plt.ylabel("y")
plt.show()

散点图
可以很明显的看得出来图片呈现上升的趋势,而且如果想用一条线来拟合该趋势的话,应该是一条直线。因此,我们给出拟合曲线的“假设函数”:
在这里插入图片描述
所谓的拟合,就是尝试建立并调用函数h(x),让输入数据x映射到输出结果y。
为了保证假设函数输出y值的准确性,我们对假设函数提出了成本函数:
成本函数
这个函数就是用来衡量前面假设函数参数的准确度高低。
用Python代码实现如下:

def computeCost(X, y, m, theta):
    pre =np.dot(X, theta) # 预测值
    s = 0
    for i in range(m):
        s += (pre[i] - y[i])**2
        J = 1/(2*m)*s # 代价函数
    return J


X = Mat[:, 0:2]
y = Mat[:, 2]
m = len(y) # 样本数量
theta = zeros((2, 1)) # 初始化theta
iterations = 1500 # 迭代次数
a=np.dot(X, theta)

J = computeCost(X, y, m, theta)

三.继续完成
11/20/2018 9:16:17 PM
最近在上班,隔了老多天了,想着过几天公司有个分享会,实在不知道那什么去分享 ,只能琢磨着完成这个,然后分享一下学习心得。
现在我们有了假设函数以及衡量它的精度的方式(成本函数)。现在需要一个方法来改善我们的假设函数,该方法即梯度下降法。那就接着上面说梯度下降法。

梯度下降公式为:
梯度下降法公式

其次,根据梯度下降法对回归变量theta中的每一个元素求偏导,并在赋予初始值后不断的更新theta值直至下降到最低点得到局部最小值,加入只有一个特征变量的情况下(不包括常数x0),则有按照如下方式更新theta的值:
在这里插入图片描述
其中,类似于求偏导是把其他变量当作常数处理的一个过程,此时特征变量是已知值(常数):
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值