下面是对全国200多个城市人口和GDP进行线性回归:
- 样本获取:http://pan.baidu.com/s/1qu6dq
- 梯度下降回归:
%% linear regression from sunjerdege with matlab clear all; %% read GDP data % c1: city;c2:population;c3:GDP [city x y] = textread('城市人口_GDP数据.txt','%s%f%f'); [num tmp] = size(x); x = x/1000; y = y/1000; % 先看看整体是否有线性的趋势 figure hold on plot(x, y, 'b.'); title('2011全国城市人口与GDP散点图'); xlabel('人口(万)'); ylabel('GDP(亿)'); % 用matlab内置函数拟合 p = polyfit(x, y, 1); % 计算回归系数 p_y = polyval(p, x); % 根据回归系数计算拟合的y plot(x, p_y, 'r'); legend('','matlab内置拟合',1); hold off %% 自己拟合一下 % hypothesis function: H = th1 + th2 * x; % cost function: J = 1/(2*num) * sum((H - y).^2); % 画一下代价函数的图 size = 50; th0 = linspace(-1000, 1000, size); % 在-1000和1000之间生成50个数 th1 =

该博客通过Matlab展示了如何对全国200多个城市的人口和GDP数据进行线性回归分析。首先,利用内置函数polyfit进行拟合,然后通过自定义代价函数和梯度下降法进行优化求解最优参数,最终得出回归结果并对比显示。
最低0.47元/天 解锁文章
996

被折叠的 条评论
为什么被折叠?



