单变量线性回归程序实现
来源:互联网 发布:炸微信群软件下载 编辑:程序博客网 时间:2024/06/06 09:00
程序流程
1. 读取数据
- data = load('ex1data1.txt');
- X = data(:, 1); y = data(:, 2);
- m = length(y); % number of training examples
2. 画散点图 plotData(X,y)
- plot(x,y,'rx','MarkerSize',10);
- ylabel('Profit in $10,000s');
- xlabel('Population of City in 10,000s');
3. 梯度下降法
计算代价函数J computerCost(X,y,theta)
- X = [ones(m, 1), data(:,1)]; % Add a column of ones to x
- theta = zeros(2, 1) % initialize fitting parameters
- y1 = X * theta;
- J = (y - y1)'*(y - y1)/(2*m);
确定迭代次数
- iterations = 1500;
- alpha = 0.01;
迭代θ0和θ1
- for iter = 1:num_iters
- temp1 = theta(1) - alpha * sum(X*theta-y)/m;
- temp2 = theta(2) - alpha * (X*theta-y)'*X(:,2)/m;
- theta = [temp1; temp2];
- J_history(iter) = computeCost(X, y, theta);
- end
4. 画出由θ确定的直线、输出预测数据
- plot(X(:,2), X*theta, '-')
- legend('Training data', 'Linear regression')
- % Predict values for population sizes of 35,000 and 70,000
- predict1 = [1, 3.5] *theta;
- fprintf('For population = 35,000, we predict a profit of %f\n',...
- predict1*10000);
- predict2 = [1, 7] * theta;
- fprintf('For population = 70,000, we predict a profit of %f\n',...
- predict2*10000);
5. 可视化代价函数J
- % Grid over which we will calculate J
- theta0_vals = linspace(-10, 10, 100);
- theta1_vals = linspace(-1, 4, 100);
- % initialize J_vals to a matrix of 0's
- J_vals = zeros(length(theta0_vals), length(theta1_vals));
- % Fill out J_vals
- for i = 1:length(theta0_vals)
- for j = 1:length(theta1_vals)
- t = [theta0_vals(i); theta1_vals(j)];
- J_vals(i,j) = computeCost(X, y, t);
- end
- end
- % Because of the way meshgrids work in the surf command, we need to
- % transpose J_vals before calling surf, or else the axes will be flipped
- J_vals = J_vals';
- % Surface plot
- figure;
- surf(theta0_vals, theta1_vals, J_vals)
- xlabel('\theta_0'); ylabel('\theta_1');
6. J的等值线图
- contour(theta0_vals, theta1_vals, J_vals, logspace(-2, 3, 20))
- xlabel('\theta_0'); ylabel('\theta_1');
- hold on;
- plot(theta(1), theta(2), 'rx', 'MarkerSize', 10, 'LineWidth', 2);
0 0
- 单变量线性回归程序实现
- 单变量线性回归
- 单变量线性回归
- 单变量线性回归
- 线性回归LinearRegression(单变量线性回归)
- 单变量线性回归原理
- 机器学习实战:单变量线性回归的实现
- 机器学习实战:单变量线性回归的实现
- python实现简单的单变量线性回归
- 机器学习实战:单变量线性回归的实现
- TensorFlow实战1:实现单变量线性回归
- 回归分析:单变量线性回归
- 单变量线性回归原理解析
- 单变量线性回归(一)
- 单变量线性回归(二)
- 线性回归 java 程序实现
- 机器学习-1 概念和单变量线性回归
- 机器学习入门——单变量线性回归
- Swift开发iOS项目实战视频教程(九)---一站到底5(题目更新与结果显示)
- STL 迭代器
- 一则sql优化的例子
- ACM:树的变换,根据表达式建立表达式树
- phpcms v9多文件上传字段获取文件url路径地址的方法
- 单变量线性回归程序实现
- 在android 中开发java.net.SocketException: socket failed: EACCES (Permission denied) 报错
- Hibernate Annotation (Hibernate 注解)
- 提供webServices的网址
- LoaderManager使用详解(四)---实例:AppListLoader
- phpcms中$PHPCMS 数组
- xampp默认mysql密码设置,修改mysql的默认空密码
- Hibernate3注解
- 润乾——etl