吴恩达机器学习练习文件下载地址:
链接:https://pan.baidu.com/s/1RvUeG10FBpV9RyFtOX1Zdw
提取码:5b4x

单变量线性回归

import numpy as np
import matplotlib.pyplot as plt
path = 'E:\吴恩达\作业代码资料\全部作业代码-无答案\ML_totalexerise\exerise1\ex1data1.txt'
data = np.loadtxt(path,delimiter=',')#delimiter为分隔符
x_data = np.array(data)[:,0]
y_data = np.array(data)[:,1]

数据可视化

plt.scatter(x_data,y_data)
plt.xlabel('population')
plt.ylabel('profit')


假设函数:

#定义假设函数
def hypoth(theta,x):return x.dot(theta)

代价函数:

#定义代价函数
def costFunction(theta,x,y):return np.sum(np.power(hypoth(theta,x)-y,2))/(2*len(y))

批量梯度下降函数:

#定义批量梯度下降函数
def bgd(theta,x,y,alpha):second = (alpha/len(y))*(x.T.dot(hypoth(theta,x)-y))return theta - second
#初始化各项参数
#np.insert中文教程地址:http://codingdict.com/article/21577
x_array = np.insert(x_data.reshape(len(y_data),1),0,1,axis=1)#输入数组、索引、插入的数值、插入的轴(0-行,1-列)
theta = np.zeros(x_array.shape[1])
alpha = 0.01 #学习速率
iterations = 1500 #迭代步数

运行下代价函数,若初始值为32.07,那么代价函数运行正常

costFunction(theta,x_array,y_data)
32.072733877455676
loss = np.zeros(iterations)
for iteration in range(iterations):cost = costFunction(theta,x_array,y_data)theta = bgd(theta,x_array,y_data,alpha)loss[iteration] = cost
#查看代价函数随迭代步数的变化趋势,一直减小计算正确
plt.plot(range(iterations),loss)

#求得的theta1和theta2
theta
array([-3.63029144,  1.16636235])
def fit(theta,x):return theta[0] +theta[1]*x
fig,ax = plt.subplots(figsize=(12,8))
ax.scatter(x_data,y_data,label='Traning Data')
x = np.linspace(5,23,100)
ax.plot(x,fit(theta,x),'r',label='fit Data')
ax.legend()
plt.xlabel('population')
plt.ylabel('profit')

多变量线性回归

path2 = 'E:\吴恩达\作业代码资料\全部作业代码-无答案\ML_totalexerise\exerise1\ex1data2.txt'
data2 = np.loadtxt(path2,delimiter=',')#delimiter为分隔符
#数据预处理
data2_array = np.array(data2)
x2_data = data2_array[:,0:-1]
y2 = data2_array[:,-1]
#由于多变量存在数据之间相差较大的情况,因此需要对其进行归一化,使算法更快收敛
#x_min = x_data.max(axis = 0)# 可以指定关键字参数axis来获得行最大(小)值或列最大(小)值
# axis=0 行方向最大(小)值,即获得每列的最大(小)值
# axis=1 列方向最大(小)值,即获得每行的最大(小)值
#返回的是位置(索引)
#print(a.argmax(axis=0)) #[1 2 1 2]
x2_data_gui = (x2_data-x2_data.mean(axis = 0))/x2_data.std(axis = 0 )
x2_array = np.insert(x2_data_gui,0,1,axis=1)
y2_array = (y2-y2.mean(axis = 0))/y2.std(axis = 0 )
theta_multi = np.zeros(x2_array.shape[1])
loss_multi = np.zeros(iterations)
for iter_multi in range(iterations):cost2 = costFunction(theta_multi,x2_array,y2_array)theta_multi = bgd(theta_multi,x2_array,y2_array,alpha)loss_multi[iter_multi] = cost2
#查看代价函数随迭代步数的变化趋势,一直减小计算正确
plt.plot(range(iterations),loss_multi)


吴恩达机器学习python代码练习一(线性回归)相关推荐

  1. 吴恩达机器学习python作业之多变量线性回归

    建议先看单变量线性回归再看多变量线性回归哦. 参考链接: (7条消息) 吴恩达|机器学习作业1.1多变量线性回归_学吧学吧终成学霸的博客-CSDN博客 数据集:一共三列,左边两列是自变量x,最右边一列 ...

  2. 吴恩达机器学习python代码练习三(多类别分类)

    import numpy as np import pandas as pd import matplotlib.pyplot as plt import scipy.io as sio from s ...

  3. 吴恩达机器学习MATLAB代码笔记(1)梯度下降

    吴恩达机器学习MATLAB代码笔记(1)梯度下降 单变量线性回归 1.标记数据点(Plotting the Date) fprintf('Plotting Data') data = load('D: ...

  4. 干货|机器学习零基础?不要怕,吴恩达机器学习课程笔记2-多元线性回归

    吴恩达Coursera机器学习课系列笔记 课程笔记|吴恩达Coursera机器学习 Week1 笔记-机器学习基础 1 Linear Regression with Multiple Variable ...

  5. 吴恩达机器学习(二)多元线性回归(假设、代价、梯度、特征缩放、多项式)

    目录 0. 前言 1. 假设函数(Hypothesis) 2. 代价函数(Cost Function) 3. 梯度下降(Gradient Descent) 4. 特征缩放(Feature Scalin ...

  6. 吴恩达机器学习个人笔记03——多变量线性回归

    目录 3.1 多维特征 3.2 多变量梯度下降 3.3 梯度下降法实践1-特征缩放 3.4 梯度下降法实践2-学习率 3.5 特征和多项式回归 3.6 正规方程 3.7 正规方程及不可逆性 下节将介绍 ...

  7. 吴恩达机器学习python实现(6):SVM支持向量机(文末附完整代码)

    所有的数据来源:链接:https://pan.baidu.com/s/1vTaw1n77xPPfKk23KEKARA 提取码:5gl2 1 Support Vector Machines 1.1 Pr ...

  8. 吴恩达|机器学习作业1.1多变量线性回归

    1.1.多变量线性回归 1)题目: 在本部分的练习中,需要预测房价,输入变量有两个特征,一是房子的面积,二是房子卧室的数量:输出变量是房子的价格. 数据链接: https://pan.baidu.co ...

  9. 吴恩达机器学习笔记二之多变量线性回归

    本节目录: 多维特征 多变量梯度下降 特征缩放 学习率 正规方程 1.多维特征 含有多个变量的模型,模型中的特征为(x1,x2,-xn), 比如对房价模型增加多个特征 这里,n代表特征的数量, x(i ...

最新文章

  1. Java 9 新特性
  2. sql server 2012序列号
  3. mysqldump备份数据库
  4. 内存还剩余很多,却使用 swap 分区
  5. php无法添加数据库,无法添加数据到数据库
  6. GooFlow修改元素color(背景/字体/连线)
  7. 2022 年 GIS 就业状况
  8. 中国普通魔方行业市场供需与战略研究报告
  9. 安卓linux开机画面,安卓开机画面_安卓开机动画修改_安卓开机动画修改器-Guide信息网...
  10. SparkStreaming实时数仓——日活
  11. 正负数在计算机中的存储方式
  12. 数据迁移的高招!两台笔记本电脑怎么互传文件
  13. Datawhale 10月学习-Free excel 学习笔记--excel函数3--FILTER,SUMIF,SUBTOTAL
  14. 8051单片机指令系统有哪几种寻址方式?
  15. windows2003服务之网络负载平衡(NLB)
  16. 一个支持钉钉远程定时打卡脚本
  17. 4G时代:手机不仅是电话
  18. 干货丨如何使用时序数据库进行淘宝用户行为分析
  19. SecureCRT超级终端使用说明
  20. 物联网安全将呈现何种发展趋势?

热门文章

  1. Python安装Anaconda集成环境
  2. Honeywell EPKS通用中文操作手册 (续)
  3. 知识蒸馏如何快速提升人工智能模型的性能?
  4. 前后端免费学,字节跳动青训营-暑假专场报名启动
  5. C语言编程实训企业计算,C语言编程项目实训
  6. 苹果桌面的计算机名,苹果第二颗自研处理器曝光:或命名M2,将用于桌面Mac电脑...
  7. Python 炫技操作(01):条件语句的七种写法
  8. 什么是可重入函数, 不可重入函数? 哪些原因导致函数不可重入?
  9. < 数据结构 > 堆的应用 --- 堆排序和Topk问题
  10. 桌面不显示我的计算机显示器,我的电脑屏幕的左下角没有“显示桌面”的图标 – 手机爱问...