从零开始用Python学习MachineLearning(1)-单变量线性回归用python实现
2018-12-10 00:28
260 查看
机器学习最好的课程还是吴恩达老师的网易云机器学习课程,这个课程在网易云上是免费的,大家可以学习一下。原理讲的比较透彻,老师表述很条理,听起来也很简单。我准备接下来写的内容的主线也是根据该课程的内容来的,
首先,学习一下线性回归。
虽然线性回归在实际应用中比较少,但线性回归理解起来比较容易,可以让我们很轻松的了解机器学习的一些基本的概念,比如假设函数,损失函数,梯度下降等概念。
吴恩达老师的课程推荐用matlab实现作业的编写,因为自己想学习python,所以我选择用python编写老师的作业。
一、线性回归的基本概念
复习一下线性回归的一些基本概念,我这里只列举一下基本概念,详细的内容请参考吴恩达老师的网易云机器学习课程。
1.1 线性回归的假设函数
1.2 代价函数
1.3 梯度下降
代入1.2中的公式,可得
二、用python编写简单线性回归的思路
1、加载数据集
2、初始化theta
3、计算成本函数的偏导数
4、迭代
三、简单线性回归的源代码
[code]from numpy import mat, shape, ones, random,zeros import matplotlib.pyplot as plt def loadDataSet(filePath): dataMat = [] labelMat = [] #分别定义一个数据集list和标签list fr = open(filePath) #打开文件输入流 for line in fr.readlines(): #处理输入数据 lineArr = line.strip().split(',') #按照空格分割每一行数据集 (x1 x2 x3 ...xn y) dataMat.append([1.0, float(lineArr[0])]) labelMat.append(float(lineArr[1])) #数据集中的真实值 y 这里需要根据自己的数据集进行修改索引位置 return dataMat, labelMat def gradDescent(X, y): X_Matrix = mat(X) # 将读取完的数据集X转化成 矩阵X y_Matrix = mat(y) #转置 y m,n = shape(X_Matrix) #m是数据集行数,n是特征的数量 alpha = 0.01 #学习速率 iterations = 1500 #最大迭代次数 theta = zeros((n, 1)) #初始化特征参数 theta的值 for k in range(iterations): error = X_Matrix * theta - y_Matrix # h(x) - y的值 theta = theta - alpha * X_Matrix.transpose() * error/m # w =: w - a(h - y)x/m # print(error) return theta #main 函数 if __name__ == '__main__': exciseDataPath = "/Users/hufan/Desktop/ex1data1.txt" X, y = loadDataSet(exciseDataPath) x = mat(X)[:,1] y = mat(y).reshape(-1,1) theta = gradDescent(X,y) slope = float(theta[1,0]) print(slope) intercept = float(theta[0,0]) print(intercept) xx = np.arange(1,40,1) yy = intercept + slope * xx plt.plot(x,y,'.') plt.plot(xx,yy,'--') plt.xlim(0,40) plt.ylim(-10,40) plt.show()
相关文章推荐
- 机器学习实战笔记(Python实现)-08-线性回归
- 从零开始用Python学习MachineLearning(6)-TensorFlow中的变量
- 机器学习入门学习笔记:(2.2)线性回归python程序实现
- 机器学习之线性回归及python实现
- 吴恩达机器学习线性回归练习题:多变量线性回归(python实现)
- 机器学习算法的Python实现 (1):logistics回归 与 线性判别分析(LDA)
- 机器学习之Softmax回归(Python实现)
- 线性回归总结及python实现
- Python数据拟合与广义线性回归算法学习
- 机器学习-线性回归python简单实现
- 机器学习之线性回归python实现
- 2.7 线性回归算法学习——多元线性回归的实现
- Python实现的简单线性回归算法实例分析
- python实现支持向量回归,包括线性,多项式,径向基
- 【Python学习系列二十四】scikit-learn库逻辑回归实现唯品会用户购买行为预测
- 机器学习理论篇之线性回归(python实现)
- 数据结构学习之线性表的顺序实现(python 实现)
- 用python实现简单线性回归
- python 学习 Tensorflow 变量 /Fetch and Feed /简单例子与非线性回归DAY2
- 多变量线性回归程序实现