第12章 副作用

公共机房内。

齐凡一边翻着书,一边调试着代码。

波士顿房价预测线性回归。

其实就是以线性回归的方式,根据一份波士顿地区的历史房价数据,预测未来的房价走势。

齐凡腹诽,不愧是资本主义国家,即便是举个例子,都是充满了金钱的味道。

其实这所谓的预测房价就是个扯淡,所谓的波士顿房价预测也没有任何意义,不过就是拿这一份数据集来演示线性回归而已。

至于线性回归,齐凡已经了解的差不多了。

它的公式巨简单。

【y=wx+b】

不过,y、w、x、b都是向量,并非是初高中数学多元一次方程中的未知数。

普通的“x”是这样的:x=1。

向量的“x”是这样的:x=[0,1,2,3,4,5,6,7,8,9]。

但向量运算除了有其自身一套规则之外,其实和非向量运算也差不多。

向量本质上不过是将数据升维而已,也可以理解成是数据属性的扩充。

就拿波士顿房价数据集来说。

“x”代表了各项评估指标。

[‘CRIM‘,‘ZN‘,‘INDUS‘,‘CHAS‘,‘NOX‘,‘RM‘,‘AGE‘,‘DIS‘,‘RAD‘,‘TAX‘,‘PTRATIO‘,‘B‘,‘LSTAT‘]

CRIM:城镇人均犯罪率。

ZN:住宅用地超过25000平方英尺的比例。

INDUS:城镇非零售商用土地的比例。

CHAS:查理斯河空变量(如果边界是河流,则为1;否则为0)。

NOX:一氧化氮浓度。

RM:住宅平均房间数。

AGE:1940年之前建成的自用房屋比例。

DIS:到波士顿五个中心区域的加权距离。

RAD:辐射性公路的接近指数。

TAX:每10000美元的全值财产税率。

PTRATIO:城镇学生数:教师数的比例。

B:1000^2,其中Bk指代城镇中黑人的比例。

LSTAT:人口中地位低下者的比例。

-----------------

“y”代表了最终的输出结果。

由于房价预测只有一个输出结果,也就是房价。所以y这个向量只有一维,而一维的向量其实就是個普通变量。

整个计算过程,就是要根据数据集给定的x和y的值,来预测出一对最精确的w和b的值。

齐凡脑海中出现了一张二维坐标系。

那几百个房价数据样本,就是坐标系中不同的点。而所谓的线性预测,其实就是找到一条直线,能最大程度将这些样品上的点串起来。

至于为什么是一条直线,而不是曲线,因为它是线性的。

当然,其实这个并非二维空间的问题。

x向量代表的样本属性有13个,y向量代表的最终输出是1个,那加起来总共有14维。

别说是14维,就算是4维的图形也没法在三维世界中画出来。

但是,不画出来也没事。可以降维嘛,将14维等价理解成二维的xy坐标系,对于计算是没有任何影响的。

齐凡在贤者饮料加持下,心无旁骛。他的视野中只有电脑屏幕和摊开的书本。

齐凡对Numpy科学计算库的使用还不熟练,每当遇到问题,就只能靠谷哥搜索来解决。

Numpy是一套科学计算库,支持对向量的计算,当然它的作用远不仅止于此。

用代码实现普通的加减乘除计算是很简单的,可要是实现向量计算就搞笑了。如果自己写一套软件来实现向量计算,那属实是一件极其麻烦的事情,甚至有些天方夜谭。

好在世界上的有一种组织--开源软件基金会。它们把大量的需要耗费极大人力才能完成的软件,无偿的开放给全世界使用。比如齐凡正在使用的Numpy就是。

开源是一件功德无量的事情。如果齐凡此刻没有Numpy,那他不知还要多花多少时间先造工具。就如一名厨师没有菜刀,不得不先买块铁自己锻造打磨一把。

也正因为此,闭源的巨硬公司口碑向来不咋滴。

这个例程还算初级,齐凡很快就写好了代码。然后开始调试。

上一章目录+书架下一章