《大工20秋《人工智能》大作業(yè)答案》由會員分享,可在線閱讀,更多相關(guān)《大工20秋《人工智能》大作業(yè)答案(13頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、大連理工大學遠程與連續(xù)教育學院《人工智能》課程設(shè)計
學習中心:
專 業(yè):
年 級:
學 號:
學 生:
題 目: 人工智能課程設(shè)計〔回歸算法〕
1. 談?wù)勀銓Ρ菊n程學習過程中的心得體會與建議?
經(jīng)過一學期的網(wǎng)上學
2、習,我對《人工智能》這門課程有了初步的生疏,人工智能這門課程內(nèi)容穎,涉及計算機學問格外廣,學習起來極富挑戰(zhàn)性,學到的學問在將來我們的工作中用處也格外大,固然,這門課也比較淺顯,單單《人工智能》只是一個入門,后面我也會在課后連續(xù)深入學習有關(guān)人工智能這方面的學問。在學習過程中我始終跟隨教師視頻講解,嚴格要求自己,收獲很大。教師的講解深入淺出,在學識學問的同時,也激發(fā)了我的學習興趣。我由衷的感謝教師的教育,感謝教師們不辭辛苦錄制課件,感謝自己能獲得這次貴重的學習時機。
2. 《人工智能》課程設(shè)計, 從以下 5 個題目中任選其一作答。
《人工智能》課程設(shè)計
題目二:回歸算法
要 求:〔1〕撰寫
3、一份word 文檔,里面包括〔常見的回歸算法、基于實例的算法具體細節(jié)〕章節(jié)。
(2) 常見的回歸算法包括:最小二乘法〔 Ordinary Least Square〕,規(guī)律回歸〔Logistic Regression〕,逐步式回歸
〔 Stepwise Regression 〕 , 多 元 自 適 應(yīng) 回 歸 樣 條
大連理工大學遠程與連續(xù)教育學院《人工智能》課程設(shè)計
〔Multivariate Adaptive Regression Splines〕以及本地散點平滑估量〔Locally Estimated Scatterplot Smoothing〕,請選擇一個算法描述下算
4、法核心思想
(3) 隨便選用一個實例實現(xiàn)你所選擇的回歸算法。
答:
(1) 最小二乘法算法核心思想最小二乘法原理如下:
依據(jù)一組給定的試驗數(shù)據(jù)
關(guān)系,只要求在給定點 上的誤差當 時,即
,求出自變量 x 與因變量 y 的函數(shù)
的平方和 最小.
(1)
這里
是線性無關(guān)的函數(shù)族,假定在
上給出一組
數(shù)據(jù)
數(shù) ,
要
求
,
以及對應(yīng)的一組權(quán) ,這里
使 最 小
為權(quán)系
, 其 中
(2)
(2)中 實際上是關(guān)于 的多元函數(shù),求 I
5、的最小值就是求多元函數(shù) I 的極值,由極值必要條件,可得
依據(jù)內(nèi)積定義引入相應(yīng)帶權(quán)內(nèi)積記號
(3)
(4)
則(3)可改寫為
大連理工大學遠程與連續(xù)教育學院《人工智能》課程設(shè)計
這是關(guān)于參數(shù) 的線性方程組,用矩陣表示為
(5)
(5)稱為法方程.當
上至多只有 n 個不同零點,則稱存在唯一。記(5)的解為
從而得到最小二乘擬合曲線
可以證明對
線性無關(guān),且在點集
在 X 上滿足 Haar 條件,此時(5)的解
(6)
6、,有
故(6)得到的 即為所求的最小二乘解.它的平方誤差為
(7)
均方誤差為
在最小二乘靠近中,假設(shè)取表示為
,則 ,
(8)
此時關(guān)于系數(shù) 的法方程(5)是病態(tài)方程,通常當 n≥3 時都不直接取作為基。
(2) 最小二乘法 C 語言實例實現(xiàn)
輸入:點的數(shù)目以及各點坐標。
輸出:依據(jù)最小二乘法原理以及各點坐標求出擬合曲線。
大連理工大學遠程與連續(xù)教育學院《人工智能》課程設(shè)計
程序流程:
7、
程序:
#include #include #include #include
float average(int n,float *x)
{int i; float av; av=0;
for(i=0;i
8、a,b; a=0;
for(i=0;i
9、;
}
//兩數(shù)先相加,再相乘
float djc(int n,float *x,float *y)
{int i;
float a=0,b=0; for(i=0;i
10、ntf(“%f %f %f %f“,a,b,c,d); return(e);
}
float he(int n,float *y)
{int i; float a; a=0;
for(i=0;i
11、f(“請輸入將要輸入的有效數(shù)值組數(shù)n 的值:“); scanf(“%d“,&n);
x=(float*)calloc(n,sizeof(float)); if(x==NULL)
{printf(“內(nèi)存安排失敗“);
exit(1);
}
y=(float*)calloc(n,sizeof(float)); if(y==NULL)
{printf(“內(nèi)存安排失敗“);
exit(1);
}
printf(“請輸入 x 的值\n“); for(i=0;i