现在开始一个全新的篇章,学习吴恩达机器学习并用python完成其布置的作业。由于本人以后想从事机器学习/深度学习相关方面的工作。吴恩达建议使用Octave/MATLAB来完成作业,但是用什么语言都不影响算法的编写。因此博主尝试使用python完成其全部作业,一点一点记录这个过程
PART1 Linear regression with one variable
In this part of this exercise, you will implement linear regression with one variable to predict profits for a food truck. Suppose you are the CEO of a restaurant franchise and are considering different cities for opening a new outlet. The chain already has trucks in various cities and you have data for profits and populations from the cities.
You would like to use this data to help you select which city to expand to next.The file ex1data1.txt contains the dataset for our linear regression problem. The first column is the population of a city and the second column is the profit of a food truck in that city. A negative value for profit indicates a loss.The ex1.m script has already been set up to load this data for you.
2.1 Plotting the Data
Before starting on any task, it is often useful to understand the data by visualizing it. For this dataset, you can use a scatter plot to visualize the data, since it has only two properties to plot (profit and population). (Many other problems that you will encounter in real life are multi-dimensional and can’t be plotted on a 2-d plot.)
本次作业需要绘图和科学计算 因此使用到了Numpy 和 Matplotlib两个库
import numpy as np
import matplotlib.pyplot as plt
第一步是根据所给出的数据绘图即可,因为是离散数据,绘制散点图即可,代码如下:
data1 = np.loadtxt('ex1data1.txt', delimiter=',')
X = data1[:, 0]
y = data1[:, 1]
# print(X, y)
# 绘图
plt.scatter(x=X, y=y, c='r', marker='x')
plt.xlabel('Population of City in 10,000s')
plt.ylabel('Profit in $10,000s')
plt.show()
2.2 Gradient Descent
In this part, you will fit the linear regression parameters θ to our dataset using gradient descent.
2.2.1 Update Equations
The objective of linear regression is to minimize the cost function:
where the hypothesis hθ(x) is given by the linear model
Recall that the parameters of your model are the θj values. These are the values you will adjust to minimize cost J(θ). One way to do this is to