大工20春人工智能课程设计答案.docx
- 文档编号:3172623
- 上传时间:2022-11-18
- 格式:DOCX
- 页数:10
- 大小:60.61KB
大工20春人工智能课程设计答案.docx
《大工20春人工智能课程设计答案.docx》由会员分享,可在线阅读,更多相关《大工20春人工智能课程设计答案.docx(10页珍藏版)》请在冰豆网上搜索。
大工20春人工智能课程设计答案
学习中心:
专业:
年级:
年春/秋季
学号:
学生:
题目:
人工智能课程设计(回归算法)
1.谈谈你对本课程学习过程中的心得体会与建议?
经过半年的网上学习,我对人工智能这门课程有了初步的认识,人工智能这门课程内容新颖,涉及计算机知识非常广,学习起来极富挑战性。
在学习过程中我始终跟随老师视频讲解,严格要求自己,收获很大。
老师的讲解深入浅出,在学识知识的同时,也激发了我的学习兴趣。
我由衷的感谢老师的教导,感谢老师们不辞辛苦录制课件,感谢自己能获得这次宝贵的学习机会。
2.《人工智能》课程设计,从以下5个题目中任选其一作答。
《人工智能》课程设计
题目二:
回归算法
要求:
(1)撰写一份word文档,里面包括(常见的回归算法、基于实例的算法具体细节)章节。
(2)常见的回归算法包括:
最小二乘法(OrdinaryLeastSquare),逻辑回归(LogisticRegression),逐步式回归(StepwiseRegression),多元自适应回归样条(MultivariateAdaptiveRegressionSplines)以及本地散点平滑估计(LocallyEstimatedScatterplotSmoothing),请选择一个算法描述下算法核心思想
(3)随意选用一个实例实现你所选择的回归算法。
答:
(1)最小二乘法算法核心思想
最小二乘法原理如下:
根据一组给定的实验数据
,求出自变量x与因变量y的函数关系,只要求在给定点
上的误差
的平方和
最小.当
时,即
(1)
这里
是线性无关的函数族,假定在
上给出一组数据
,
以及对应的一组权
,这里
为权系数,要求
使
最小,其中
(2)
(2)中
实际上是关于
的多元函数,求I的最小值就是求多元函数I的极值,由极值必要条件,可得
(3)
根据内积定义引入相应带权内积记号
(4)
则(3)可改写为
这是关于参数
的线性方程组,用矩阵表示为
(5)
(5)称为法方程.当
线性无关,且在点集
上至多只有n个不同零点,则称
在X上满足Haar条件,此时(5)的解存在唯一。
记(5)的解为
从而得到最小二乘拟合曲线
(6)
可以证明对
,有
故(6)得到的
即为所求的最小二乘解.它的平方误差为
(7)
均方误差为
在最小二乘逼近中,若取
,则
,表示为
(8)
此时关于系数
的法方程(5)是病态方程,通常当n≥3时都不直接取
作为基。
(2)最小二乘法C语言实例实现
输入:
已知点的数目以及各点坐标。
输出:
根据最小二乘法原理以及各点坐标求出拟合曲线。
程序流程:
程序:
#include
#include
#include
#include
floataverage(intn,float*x)
{inti;
floatav;
av=0;
for(i=0;i av+=*(x+i); av=av/n; return(av); } //平方和 floatspfh(intn,float*x) {inti; floata,b; a=0; for(i=0;i a+=(*(x+i))*(*(x+i)); return(a); } //和平方 floatshpf(intn,float*x) {inti; floata,b; a=0; for(i=0;i a=a+*(x+i); b=a*a/n; return(b); } //两数先相乘,再相加 floatdcj(intn,float*x,float*y) {inti; floata; a=0; for(i=0;i a+=(*(x+i))*(*(y+i)); return(a); } //两数先相加,再相乘 floatdjc(intn,float*x,float*y) {inti; floata=0,b=0; for(i=0;i {a=a+*(x+i); b=b+*(y+i); } a=a*b/n; return(a); } //系数a floatxsa(intn,float*x,float*y) {floata,b,c,d,e; a=spfh(n,x); b=shpf(n,x); c=dcj(n,x,y); d=djc(n,x,y); e=(c-d)/(a-b); //printf("%f%f%f%f",a,b,c,d); return(e); } floathe(intn,float*y) {inti; floata; a=0; for(i=0;i a=a+*(y+i); return(a); } floatxsb(intn,float*x,float*y,floata) {floatb,c,d; b=he(n,y); c=he(n,x); d=(b-a*c)/n; return(d); } voidmain() {intn,i; float*x,*y,a,b; printf("请输入将要输入的有效数值组数n的值: "); scanf("%d",&n); x=(float*)calloc(n,sizeof(float)); if(x==NULL) {printf("内存分配失败"); exit (1); } y=(float*)calloc(n,sizeof(float)); if(y==NULL) {printf("内存分配失败"); exit (1); } printf("请输入x的值\n"); for(i=0;i printf("请输入y的值,请注意与x的值一一对应: \n"); for(i=0;i for(i=0;i {printf("x[%d]=%3.2f",i,*(x+i)); printf("y[%d]=%3.2f\n",i,*(y+i)); } a=xsa(n,x,y); b=xsb(n,x,y,a); printf("经最小二乘法拟合得到的一元线性方程为: \n"); printf("f(x)=%3.2fx+%3.2f\n",a,b); } 题目一: A*算法 要求: (1)撰写一份word文档,里面包括(算法思路、算法程序框图、重排九宫问题)章节。 (2)算法思路: 简单介绍该算法的基本思想,100字左右即可。 (3)算法程序框图: 绘制流程图或原理图,从算法的开始到结束的程序框图。 (4)对于重排九宫问题的启发式函数: f(x)=p(x)+3s(x) p(x)是x结点和目标结点相比每个将牌“离家”的最短距离之和; s(x)是: 每个将牌和目标相比,若该将牌的后继和目标中该将牌的后继不同,则该将牌得2分,相同则该将牌得0分,中间位置有将牌得1分,没将牌得0分。 对于给定的初始格局和目标状态请按此启发式函数给出搜索的状态空间图。 初始格局目标状态 题目二: 回归算法 要求: (1)撰写一份word文档,里面包括(常见的回归算法、基于实例的算法具体细节)章节。 (2)常见的回归算法包括: 最小二乘法(OrdinaryLeastSquare),逻辑回归(LogisticRegression),逐步式回归(StepwiseRegression),多元自适应回归样条(MultivariateAdaptiveRegressionSplines)以及本地散点平滑估计(LocallyEstimatedScatterplotSmoothing),请选择一个算法描述下算法核心思想 (3)随意选用一个实例实现你所选择的回归算法。 题目三: 深度优先搜索算法 要求: (1)撰写一份word文档,里面包括(算法思路、算法程序框图、主要函数代码)章节。 (2)算法思路: 简单介绍该算法的基本思想,至少100字。 (3)算法程序框图: 绘制流程图或原理图,从算法的开始到结束的程序框图。 (4)主要函数代码: 列出算法的具体代码。 (5)简单描述在人工智能的哪些领域需要使用深度优先搜索算法。 题目四: 博弈树 要求: (1)撰写一份word文档,里面包括(基本概念、计算倒推值、-剪枝技术)章节。 (2)基本概念: 简单描述博弈树,至少200字。 (3)简单描述-剪枝技术。 (4)图示博弈树,其中末一行的数字为假设的估值,请对博弈树作如下工作: 计算各节点的倒推值。 利用-剪枝技术剪去不必要的分支。 (可在节点分支上直接加注释) 题目五: 广度优先搜索算法 要求: (1)撰写一份word文档,里面包括(算法思路、算法程序框图、主要函数代码)章节。 (2)算法思路: 简单介绍该算法的基本思想,至少100字。 (3)算法程序框图: 绘制流程图或原理图,从算法的开始到结束的程序框图。 (4)主要函数代码: 列出算法的具体代码。 (5)简单描述在人工智能的哪些领域需要使用广度优先搜索算法。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大工 20 人工智能 课程设计 答案