• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      融入KNN算法的二維數(shù)組教學(xué)案例設(shè)計

      2023-06-15 16:20:31張紅霞高榮徐輝柯琦
      計算機(jī)時代 2023年6期
      關(guān)鍵詞:教學(xué)案例人工智能

      張紅霞 高榮 徐輝 柯琦

      摘? 要: 為了讓計算機(jī)專業(yè)學(xué)生在專業(yè)基礎(chǔ)課中盡早接觸人工智能中的一些概念和算法,激發(fā)學(xué)生的學(xué)習(xí)興趣,設(shè)計了一個融入K-近鄰算法 (K-Nearest Neighbor, KNN)的二維數(shù)組教學(xué)案例,并對案例教學(xué)實施過程、實踐任務(wù)分解、案例運用效果等方面進(jìn)行了闡述。實踐結(jié)果表明,使用該案例進(jìn)行教學(xué)有利于提高課程教學(xué)質(zhì)量。

      關(guān)鍵詞: 二維數(shù)組; KNN; 教學(xué)案例; 人工智能

      中圖分類號:G420? ? ? ? ? 文獻(xiàn)標(biāo)識碼:A? ? ?文章編號:1006-8228(2023)06-142-03

      Teaching case design of two-dimensional array integrating KNN algorithm

      Zhang Hongxia, Gao Rong, Xu Hui, Ke Qi

      (School of Big Data and Artificial Intelligence, Guangxi University of Finance and Economics, Nanning, Guangxi 530003, China)

      Abstract: In order to expose computer major students to some concepts and algorithms in artificial intelligence as early as possible in their professional foundation courses and to stimulate their learning interest, a two-dimensional array teaching case integrating KNN algorithm is designed, and the implementation process of case teaching, practical task decomposition and case application effect are described. The practice results show that the use of the teaching case is conducive to improving the quality of curriculum teaching.

      Key words: two-dimension array; K-Nearest Neighbor (KNN); teaching case; artificial intelligence

      0 引言

      如今,人才已成為人工智能技術(shù)發(fā)展及應(yīng)用所需的戰(zhàn)略資源,社會對人工智能人才的需求也逐年激增。國家高度重視并逐步布局智能化人才培養(yǎng)工作,以應(yīng)對新一輪科技革命與產(chǎn)業(yè)革命帶來的挑戰(zhàn)[1]。

      人工智能是個多學(xué)科交叉融合的知識領(lǐng)域,研究內(nèi)容較為豐富,有一定的學(xué)習(xí)難度,初學(xué)者學(xué)習(xí)時很容易產(chǎn)生畏難情緒[2]。因此,在前期的基礎(chǔ)課程教學(xué)中,需要教師精心設(shè)計,將人工智能算法中涉及的一些知識融入到課程教學(xué)內(nèi)容當(dāng)中,讓學(xué)生盡早接觸人工智能中的一些常用概念和算法,這些新知識的引入,不僅能改進(jìn)課程的教學(xué)內(nèi)容、提高課程的教學(xué)質(zhì)量[3],還有助于激發(fā)學(xué)生的學(xué)習(xí)興趣,引發(fā)學(xué)生對人工智能技術(shù)進(jìn)一步探究的好奇心,幫助學(xué)生克服初學(xué)時的畏難情緒。

      1 教學(xué)現(xiàn)狀分析

      二維數(shù)組是程序設(shè)計中一種常用的數(shù)據(jù)結(jié)構(gòu),在很多程序設(shè)計語言中,需要解決與矩陣有關(guān)的問題時,通常都是采用二維數(shù)組。而矩陣及其運算可說是人工智能、機(jī)器學(xué)習(xí)算法中不可或缺的,人工智能都是基于大量的數(shù)據(jù)在矩陣中進(jìn)行各種龐雜而基礎(chǔ)的運算和變換,從而找出其中的規(guī)律,最后訓(xùn)練出數(shù)學(xué)模型的[4]。如在程序設(shè)計語言C或Java中,矩陣可以用二維數(shù)組來表示。講解二維數(shù)組這個知識點時,當(dāng)前一般的教學(xué)順序就是講解其概念、定義,然后通過一些實例講解,常用的實例有行列互換(矩陣轉(zhuǎn)置)、求最值、找鞍點、楊輝三角等[5]。這些例子之間并沒有什么關(guān)聯(lián),相互之間是孤立的,與實際應(yīng)用也缺乏聯(lián)系。學(xué)生體會不到這些例子在實際項目中有什么作用,難以和機(jī)器學(xué)習(xí)、人工智能等聯(lián)系起來。

      2 案例設(shè)計與實施

      本案例以鳶尾花數(shù)據(jù)集、分類問題及K-近鄰算法(KNN,K-Nearest Neighbor)為元素,將其融入到二維數(shù)組的教學(xué)案例中。分類問題是機(jī)器學(xué)習(xí)中的常見問題,也是日常生活中常見的一類問題,而KNN算法則是機(jī)器學(xué)習(xí)中一個簡單的分類算法[6],是機(jī)器學(xué)習(xí)中惟一的一個不需要訓(xùn)練過程的分類算法,算法可直接用數(shù)據(jù)集對測試樣本分類,學(xué)生學(xué)習(xí)起來會比較容易理解。在教學(xué)過程中,精心設(shè)計案例教學(xué)過程,采用啟發(fā)式教學(xué)[7],授課的同時逐漸引導(dǎo)學(xué)生理解KNN算法及人工智能中的一些常用概念。

      2.1 引入知識點

      鳶尾花數(shù)據(jù)集是機(jī)器學(xué)習(xí)中一個經(jīng)典、小巧的分類實驗數(shù)據(jù)集,數(shù)據(jù)集包含3類共150個數(shù)據(jù)樣本,每個樣本包含花萼長、花萼寬、花瓣長、花瓣寬4個屬性,類標(biāo)簽有三個:setosa、versicolor、virginica,其部分?jǐn)?shù)據(jù)樣本見表1。

      在已經(jīng)有數(shù)據(jù)集的條件下,需要判斷新的鳶尾花數(shù)據(jù):花萼長、花萼寬、花瓣長、花瓣寬分別是7.1、3.1、5.3、1.7,屬于哪一類鳶尾花。編程解決這個分類任務(wù),第一個問題就是如何在程序中表示這些數(shù)據(jù),由此引入并講解二維數(shù)組的知識。把問題簡化成用二維數(shù)組來存放鳶尾花的4個屬性數(shù)據(jù),Java代碼段如下:

      double iris[][]={ {5.1,3.8,1.5,0.2},

      {4.9,3.0,1.4,0.2},

      {7.0,3.2,4.7,1.4},

      {4.9,2.4,3.3,1.0},

      {6.3,3.3,6.0,2.5} };

      //用一個二維數(shù)組存放了5個鳶尾花數(shù)據(jù)

      教學(xué)中像這樣用一組具有實際意義的數(shù)據(jù),比類似于“int[][] a={{1,2,3},{4,5,6},{7,8,9}}”這樣的例子更具有實用性和吸引力。在這個過程中,學(xué)生除了學(xué)習(xí)二維數(shù)組的定義、初始化方法外,還會接觸到數(shù)據(jù)集、分類問題等機(jī)器學(xué)習(xí)中的概念。

      2.2 引入KNN算法

      數(shù)據(jù)存放問題解決后,需要通過KNN算法實現(xiàn)分類,要求學(xué)生只要理解算法思想即可。KNN分類算法的基本步驟是:

      ① 將數(shù)據(jù)集中的數(shù)據(jù)打亂;

      ② 劃分成訓(xùn)練集(通常取數(shù)據(jù)集的70%-90%)和測試集;

      ③ 計算待預(yù)測樣本與樣本集中每個樣本的距離(如歐氏距離);

      ④ 將計算好的距離排序;

      ⑤ 選擇K個距離最近的樣本,采用少數(shù)服從多數(shù)的方法對預(yù)測樣本進(jìn)行分類。

      教學(xué)過程中通過圖1來講解算法思想。圖1是一個具有二維數(shù)據(jù)特征的樣本的二分類過程,五角星是待分類樣本,當(dāng)K=3時,3個最近鄰中有2個是A類,分類結(jié)果為class A,而當(dāng)K=5時,5個最近鄰中有3個是B類,分類結(jié)果為class B??梢钥闯鰴C(jī)器學(xué)習(xí)、人工智能算法中分類結(jié)果并不一定準(zhǔn)確的特點[8]。

      KNN算法是一個不需要訓(xùn)練過程的分類算法,可以不劃分訓(xùn)練集和測試集,因為學(xué)習(xí)的重點是二維數(shù)組,所以直接選擇第三步實現(xiàn):計算待預(yù)測樣本與樣本集中每個樣本間的歐氏距離。主要代碼為:

      double[][] iris={ {5.1,3.5,1.4,0.2,1},...{7.0,3.2,4.7,1.4,2},...{ 6.3,3.3,6.0,2.5,3} };

      //每類鳶尾花選擇3個數(shù)據(jù)放入數(shù)組,每個元素中最后的1,2,3分別代表3種類型

      double[] newIris={7.1,3.1,5.3,1.7}; //待判斷樣本

      double[] dist=new double[iris.length];

      //dist用來存放計算出的歐氏距離

      for(inti=0;i

      double d=0;

      for(int j=0; j

      d=d+Math.pow(newIris[j]-iris[i][j],2); }

      dist[i]=Math.sqrt(d);

      }

      for(inti=0; i

      System.out.println(dist[i]+" "+iris[i][4]);

      //輸出計算出的歐氏距離

      }

      程序運行效果如圖2所示。

      程序中只選用九個鳶尾花數(shù)據(jù),可以直接分析后續(xù)的分類過程:取K=3,選擇三個距離最近的近鄰,有二個是第二類versicolor鳶尾花,據(jù)此預(yù)測樣本為versicolor鳶尾花。這個實例中還用到了一維數(shù)組、數(shù)學(xué)函數(shù)等知識,實用性強(qiáng),比常規(guī)實例如楊輝三角這樣的程序更能激發(fā)學(xué)生的學(xué)習(xí)興趣。

      2.3 實踐任務(wù)分解

      根據(jù)理論教學(xué)內(nèi)容,將KNN算法按功能進(jìn)行分解后作為上機(jī)實踐任務(wù)。結(jié)合學(xué)生的基礎(chǔ),對問題作了簡單化處理,分解出的實踐任務(wù)見表2。

      實踐任務(wù)做了簡單化處理,同時也不乏挑戰(zhàn)性,但都是在學(xué)生的能力范圍內(nèi)可以完成的。實踐內(nèi)容都與KNN算法有關(guān),把所有的實踐任務(wù)整合起來就是一個有機(jī)的整體。完成這些實踐任務(wù),除了熟練掌握二維數(shù)組這個知識點外,還能理解KNN算法。

      2.4 案例運用效果

      本案例應(yīng)用于廣西財經(jīng)學(xué)院2021級計算機(jī)科學(xué)與技術(shù)專業(yè)的“Java語言程序設(shè)計”課程教學(xué)中,有100多名學(xué)生參與了課程教學(xué),整體反映效果良好。體現(xiàn)在課堂教學(xué)上,學(xué)生注意力更集中,課后會主動上網(wǎng)查閱相關(guān)資料,并積極與老師進(jìn)行線上線下溝通與交流,表現(xiàn)出很強(qiáng)的好奇心和求知欲。在實踐任務(wù)方面,大部分學(xué)生都能順利完成所有實踐任務(wù),少數(shù)學(xué)生在老師、同學(xué)的指導(dǎo)和幫助下也能順利完成。從學(xué)生評教結(jié)果也可以看出,學(xué)生對融入了機(jī)器學(xué)習(xí)算法的案例教學(xué)非常滿意,都希望能更深入地學(xué)習(xí)關(guān)于人工智能的課程。

      3 結(jié)束語

      本文只是針對二維數(shù)組這個知識點,進(jìn)行了融入KNN算法的案例教學(xué)設(shè)計。這個案例在整個課程教學(xué)中并不是孤立使用的,在后續(xù)的函數(shù)、文件、結(jié)構(gòu)體等章節(jié)中,還繼續(xù)將本案例與這些知識點結(jié)合,如將各功能分別用函數(shù)實現(xiàn);從文件中讀入數(shù)據(jù),放入二維數(shù)組中;帶字符串類標(biāo)簽的鳶尾花數(shù)據(jù)可以用結(jié)構(gòu)體數(shù)組存放等。今后需要進(jìn)一步對案例進(jìn)行擴(kuò)充和改進(jìn),不斷將新知識、新技術(shù)融合到傳統(tǒng)的課程教學(xué)中,讓整個課程有一個更加系統(tǒng)的教學(xué)案例,進(jìn)一步提高課程教學(xué)質(zhì)量。

      參考文獻(xiàn)(References):

      [1] 胡純?nèi)氐?人工智能專業(yè)教育的教學(xué)模式探討[J].計算機(jī)

      教育,2021(11):67-71

      [2] 陳龍等.新工科背景下大學(xué)計算機(jī)人工智能實驗案例設(shè)計[J].

      計算機(jī)教育,2022(3):29-33

      [3] 王毅,黃建忠,張滬寅.基于成果導(dǎo)向理念的計算機(jī)新工科

      人才培養(yǎng)[J].計算機(jī)教育,2020(2):8-11

      [4] 卷兒哥.人工智能-線性代數(shù)之矩陣篇[EB/OL]. 2020-

      03-17.https://blog.csdn.net/DahlinSky/article/details/104907710

      [5] 譚浩強(qiáng).C程序設(shè)計(第五版)[M].北京:清華大學(xué)出版社,2017

      [6] 肖云鵬,盧星宇等.機(jī)器學(xué)習(xí)經(jīng)典算法實踐[M].北京:清華

      大學(xué)出版社,2018

      [7] 王建軍.面向產(chǎn)業(yè)構(gòu)建實踐共同體的地方高校新工科課程

      改革[J].計算機(jī)教育,2020(11):12l-125

      [8] 周志華.機(jī)器學(xué)習(xí)[M].北京:清華大學(xué)出版社,2016

      猜你喜歡
      教學(xué)案例人工智能
      我校新增“人工智能”本科專業(yè)
      2019:人工智能
      商界(2019年12期)2019-01-03 06:59:05
      人工智能與就業(yè)
      數(shù)讀人工智能
      小康(2017年16期)2017-06-07 09:00:59
      教學(xué)案例的內(nèi)涵及其應(yīng)用意義
      充分整合教材資源 優(yōu)化歷史課堂教學(xué)
      小學(xué)數(shù)學(xué)課堂導(dǎo)入技巧及案例分析
      考試周刊(2016年88期)2016-11-24 13:49:44
      反轉(zhuǎn)課堂模式與數(shù)學(xué)教學(xué)案例
      促進(jìn)初中化學(xué)定量觀建構(gòu)的教學(xué)案例
      小學(xué)數(shù)學(xué)“反思型” 教學(xué)的探索與實踐
      考試周刊(2016年76期)2016-10-09 09:08:16
      汝南县| 陆川县| 肃南| 阳东县| 东明县| 英吉沙县| 仙游县| 邓州市| 九寨沟县| 河东区| 嘉兴市| 博爱县| 高邑县| 衡东县| 科技| 邛崃市| 江西省| 兴仁县| 西林县| 玉屏| 天峨县| 江城| 永善县| 抚州市| 东明县| 名山县| 清水河县| 无锡市| 布尔津县| 大余县| 北票市| 南川市| 新龙县| 鄱阳县| 义乌市| 敖汉旗| 阳山县| 阿图什市| 玉树县| 东乡族自治县| 仁布县|