吴恩达机器学习python代码练习一(线性回归)
吴恩达机器学习练习文件下载地址:
链接: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代码练习一(线性回归)相关推荐
- 吴恩达机器学习python作业之多变量线性回归
建议先看单变量线性回归再看多变量线性回归哦. 参考链接: (7条消息) 吴恩达|机器学习作业1.1多变量线性回归_学吧学吧终成学霸的博客-CSDN博客 数据集:一共三列,左边两列是自变量x,最右边一列 ...
- 吴恩达机器学习python代码练习三(多类别分类)
import numpy as np import pandas as pd import matplotlib.pyplot as plt import scipy.io as sio from s ...
- 吴恩达机器学习MATLAB代码笔记(1)梯度下降
吴恩达机器学习MATLAB代码笔记(1)梯度下降 单变量线性回归 1.标记数据点(Plotting the Date) fprintf('Plotting Data') data = load('D: ...
- 干货|机器学习零基础?不要怕,吴恩达机器学习课程笔记2-多元线性回归
吴恩达Coursera机器学习课系列笔记 课程笔记|吴恩达Coursera机器学习 Week1 笔记-机器学习基础 1 Linear Regression with Multiple Variable ...
- 吴恩达机器学习(二)多元线性回归(假设、代价、梯度、特征缩放、多项式)
目录 0. 前言 1. 假设函数(Hypothesis) 2. 代价函数(Cost Function) 3. 梯度下降(Gradient Descent) 4. 特征缩放(Feature Scalin ...
- 吴恩达机器学习个人笔记03——多变量线性回归
目录 3.1 多维特征 3.2 多变量梯度下降 3.3 梯度下降法实践1-特征缩放 3.4 梯度下降法实践2-学习率 3.5 特征和多项式回归 3.6 正规方程 3.7 正规方程及不可逆性 下节将介绍 ...
- 吴恩达机器学习python实现(6):SVM支持向量机(文末附完整代码)
所有的数据来源:链接:https://pan.baidu.com/s/1vTaw1n77xPPfKk23KEKARA 提取码:5gl2 1 Support Vector Machines 1.1 Pr ...
- 吴恩达|机器学习作业1.1多变量线性回归
1.1.多变量线性回归 1)题目: 在本部分的练习中,需要预测房价,输入变量有两个特征,一是房子的面积,二是房子卧室的数量:输出变量是房子的价格. 数据链接: https://pan.baidu.co ...
- 吴恩达机器学习笔记二之多变量线性回归
本节目录: 多维特征 多变量梯度下降 特征缩放 学习率 正规方程 1.多维特征 含有多个变量的模型,模型中的特征为(x1,x2,-xn), 比如对房价模型增加多个特征 这里,n代表特征的数量, x(i ...
最新文章
- Java 9 新特性
- sql server 2012序列号
- mysqldump备份数据库
- 内存还剩余很多,却使用 swap 分区
- php无法添加数据库,无法添加数据到数据库
- GooFlow修改元素color(背景/字体/连线)
- 2022 年 GIS 就业状况
- 中国普通魔方行业市场供需与战略研究报告
- 安卓linux开机画面,安卓开机画面_安卓开机动画修改_安卓开机动画修改器-Guide信息网...
- SparkStreaming实时数仓——日活
- 正负数在计算机中的存储方式
- 数据迁移的高招!两台笔记本电脑怎么互传文件
- Datawhale 10月学习-Free excel 学习笔记--excel函数3--FILTER,SUMIF,SUBTOTAL
- 8051单片机指令系统有哪几种寻址方式?
- windows2003服务之网络负载平衡(NLB)
- 一个支持钉钉远程定时打卡脚本
- 4G时代:手机不仅是电话
- 干货丨如何使用时序数据库进行淘宝用户行为分析
- SecureCRT超级终端使用说明
- 物联网安全将呈现何种发展趋势?
热门文章
- Python安装Anaconda集成环境
- Honeywell EPKS通用中文操作手册 (续)
- 知识蒸馏如何快速提升人工智能模型的性能?
- 前后端免费学,字节跳动青训营-暑假专场报名启动
- C语言编程实训企业计算,C语言编程项目实训
- 苹果桌面的计算机名,苹果第二颗自研处理器曝光:或命名M2,将用于桌面Mac电脑...
- Python 炫技操作(01):条件语句的七种写法
- 什么是可重入函数, 不可重入函数? 哪些原因导致函数不可重入?
- < 数据结构 > 堆的应用 --- 堆排序和Topk问题
- 桌面不显示我的计算机显示器,我的电脑屏幕的左下角没有“显示桌面”的图标 – 手机爱问...