用 C 语言写个简单的【多元线性回归】

很久没写 C语言了吧!语法都忘了。

 

数据集:UCI

abalone   http://archive.ics.uci.edu/dataset/1/abalone

.data 格式,另外两个说明文件。

关于 C 语言数据结构

 

 

https://blog.csdn.net/u012243115/article/details/44563331

 

参照案例,来自百度知道

https://zhidao.baidu.com/question/1430140331146250339.html

 

ASCII 对照表,用户 hexdump -C filename

https://c.biancheng.net/c/ascii/

 

指针移动

https://blog.csdn.net/st66688/article/details/108356361

https://blog.csdn.net/XWXnb6/article/details/144379184

 

指针数组

https://blog.csdn.net/cjzjolly/article/details/82116772

 

生成新文件的案例

https://blog.csdn.net/weixin_55491446/article/details/128392448

 

.dat 转文本 的参考

https://blog.csdn.net/weixin_55491446/article/details/128392448

 

 

 

2025.1.13 今天,数据集变成 txt,逗号分隔

参考 https://blog.csdn.net/rng_uzi_/article/details/118426947

用 strtok(变量,分隔符)  完成每一行的变量制作。

用 strtof() 作强制类型转换

 

根据数据集描述,分析的目的,就是预测鲍鱼的年龄。一共 4900+ 样本。最后一列就是Y。整个整数,+1.5就是年龄。

我们用 OLS,以及同方差假设,以及变量之间的协防方差阵,反推出系数矩阵的逆矩阵。用于估计系数向量,beta 。

参考:矩阵形式的线性回归模型  https://www.cnblogs.com/lixddd/p/14360079.html

 

 来源:计量经济学导论  https://www.cnblogs.com/lixddd/p/14360079.html

 

 接下来的工作,还要编写一个求方差的函数。

 

 2025.1.13 17:44 完成方差函数。接下来的工作,写一个协方差的函数。

 2025.1.13 18:30 完成协方差,其中花了 12 分钟玩数独。现在开始计算每个变量的方差,暂时用一阶中心矩作为估计量。

18:35 变量方差计算完毕。

18:48 根号不好用,自己编写个根号试试。

 

昨天 11 点左右到家里。我本来想立刻写代码,但是先搞了卫生工作,然后就睡着了!所以,还是得先把任务完成。

今天早上 9点半,醒。给自己放两个礼拜的假,这是这几年来的假期,从 2018 年开始计算。平均每年 2 天假期。

11点多,到达工作场所,打开工作界面。我还是会有分心的时候,但是不回拨出脑力处理 Process (进程)。

 

13点18分,遇到问题,C语言写代码的时候,函数里套函数 ,参数传不进去。

参考:深入理解计算机系统(3.7)------过程(函数的调用原理)  https://www.cnblogs.com/ysocean/p/7625917.html

 

计算机用 Stack 存传递参数。因此,可以判断,指针指到内层函数的时候,Stack pop  出来的是 NULL value。

 教你手动写 SQRT

参考:C/C++手动实现sqrt()   https://www.cnblogs.com/bluettt/p/13025259.html

 

2个小时之后,发现是 %f 没写。我现在知道,为什么 print 的时候无需定义 Type 了。

 

接下来的任务,完成 (X.T*X) 这个矩阵的逆矩阵。

线性回归的矩阵表示:

 

依据上述两个公式推导,得出

其中,sigma 为协方差阵,X 是自变量,Y 是响应变量。

做法,乘号两边,各放两个向量。这样系数就估计出来了。

 

选的算法:左边先用顺序的,0-27 顺序排列;右边,差额扩大的数列,称为“跳点”。

第一步,先完成顺序部分。

 

第二步,完成跳点部分。

 

然后确认几个向量的维度。

因为 Scale 差得有点多,就看正负,准确率。C语言模型,搞定了!!

 

2025.1.15 17:15

Confusion Matrix

 

计算逻辑

 

2025.1.15 晚上 6 点。完成第 20 个模型。

最主要是自己做实验!!!

收乐财

 

posted on 2025-01-07 20:45  Mira_2019  阅读(85)  评论(0)    收藏  举报