過去,計算機(jī)只能做一些機(jī)械性的任務(wù),例如求出表格里的所有數(shù)據(jù)之和,或者統(tǒng)計文本里的總字?jǐn)?shù),現(xiàn)在,計算機(jī)似乎變得越來越聰明了,給它一張照片,它能告訴你照片里都有些什么東西;給它一段錄音,它能告訴你里面的人都說了些什么:給它一篇文章,它能幫你想一個合適的標(biāo)題,計算機(jī)甚至能像真人一樣,跟你聊天對話,為你答疑解惑,這一切,都得益于近幾年來AI技術(shù)的飛速發(fā)展。AI,即Artificial Intelligence的簡稱,中文叫作“人工智能”,指的是人造機(jī)器能模擬人類的智能行為,其實,早在計算機(jī)誕生之初,人們就已經(jīng)考慮過這個問題。20世紀(jì)50年代,科學(xué)家們提出過一種思路:提前給計算機(jī)輸入大量的數(shù)據(jù),讓計算機(jī)去總結(jié)它們的特征,尋找其中的規(guī)律,從而形成對數(shù)據(jù)的分析和處理手段,自動完成一些似乎只有人才能做的工作,后來,人們把這種實現(xiàn)人工智能的思路叫作“機(jī)器學(xué)習(xí)”。
機(jī)器學(xué)習(xí)的方法有很多,有一種特別簡單的機(jī)器學(xué)習(xí)方法叫作“kNN算法”,經(jīng)常用于自動對事物進(jìn)行分類,這是兩位美國統(tǒng)計學(xué)家伊夫琳·菲克斯和小約瑟夫·勞森·霍奇斯于1951年提出的,它的核心思想就是,事先給計算機(jī)輸入大量已有事物和它們的類別,當(dāng)需要對一個新事物進(jìn)行分類時,看看跟它最“像”的那些已有事物大都屬于哪個類別,如果所涉及的事物都只含有兩個數(shù)量特征,kNN算法就會把這些事物抽象成一個個實數(shù)對,進(jìn)而抽象成平面直角坐標(biāo)系上的一個個點,kNN算法的流程如下:
1.收集樣本數(shù)據(jù),包括所選樣本的特征和對應(yīng)的類別:
2.選取一個合適的正整數(shù)k:
3.對于一個未分類的新事物,計算其與樣本數(shù)據(jù)中的所有樣本在平面直角坐標(biāo)系中的直線距離,并選取距離最近的k個樣本:
4.統(tǒng)計這k個樣本對應(yīng)的類別,將出現(xiàn)次數(shù)最多的類別分配給新事物,當(dāng)成新事物的預(yù)測分類。
簡單地說,我們想要看看和新點最近的k個“鄰居”中最常見的類別,這也就是kNN這個名字的來歷:它是“k個最近的鄰居”(k-Nearest Neighbors)的首字母縮寫。
讓我們通過一個簡單的例子,進(jìn)一步了解kNN算法的工作原理,假設(shè)我們想用kNN算法制作一個系統(tǒng),可以根據(jù)足球球員的比賽數(shù)據(jù)自動判斷球員的場上位置,已知某賽季中9名球員的進(jìn)球數(shù)、助攻數(shù)和場上位置如表1所示。
中學(xué)生數(shù)理化·八年級數(shù)學(xué)人教版2024年8期