溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

機(jī)器學(xué)習(xí)的基礎(chǔ)知識有哪些

發(fā)布時(shí)間:2022-03-25 10:35:19 來源:億速云 閱讀:276 作者:iii 欄目:大數(shù)據(jù)

本篇內(nèi)容主要講解“機(jī)器學(xué)習(xí)的基礎(chǔ)知識有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“機(jī)器學(xué)習(xí)的基礎(chǔ)知識有哪些”吧!

1.1 何謂機(jī)器學(xué)習(xí)

        除卻一些無關(guān)緊要的情況,人們很難直接從原始數(shù)據(jù)本身獲得所需信息。例 如 ,對于垃圾郵 件的檢測,偵測一個(gè)單詞是否存在并沒有太大的作用,然而當(dāng)某幾個(gè)特定單詞同時(shí)出現(xiàn)時(shí),再輔 以考察郵件長度及其他因素,人們就可以更準(zhǔn)確地判定該郵件是否為垃圾郵件。簡單地說,機(jī)器 學(xué)習(xí)就是把無序的數(shù)據(jù)轉(zhuǎn)換成有用的信息

1.2 如何選擇合適的算法

從算法中選擇實(shí)際可用的算法,必須考慮下面兩個(gè)問題:一 、使用機(jī)器學(xué)習(xí)算法的目的,想要算法完成何種任務(wù),比如是預(yù)測明天下雨的概率還是對投票者按照興趣分組;二、需要分析或收集的數(shù)據(jù)是什么?

        首先,考慮使用機(jī)器學(xué)習(xí)算法的目的。如果想要預(yù)測目標(biāo)變量的值,則可以選擇監(jiān)督學(xué)習(xí)算法,否則可以選擇無監(jiān)督學(xué)習(xí)算法。確定選擇監(jiān)督學(xué)習(xí)算法之后,需要進(jìn)一步確定目標(biāo)變量類型,如果目標(biāo)變量是離散型,如是/否、1/2/3、A/B/C或者紅/黃/黑等,則可以選擇分類器算法;如果目標(biāo)變量是連續(xù)型的數(shù)值,如0.0~100.00、-999~999或者正無窮~負(fù)無窮等,則需要選擇回歸算法。

如果不想預(yù)測目標(biāo)變量的值,則可以選擇無監(jiān)督學(xué)習(xí)算法。進(jìn)一步分析是否需要將數(shù)據(jù)劃分為離散的組。如果這是唯一的需求,則使用聚類算法;如果還需要估計(jì)數(shù)據(jù)與每個(gè)分組的相似程 度 ,則需要使用密度估計(jì)算法。

在大多數(shù)情況下,上面給出的選擇方法都能幫助我們選擇恰當(dāng)?shù)臋C(jī)器學(xué)習(xí)算法,但這也并非一成不變。也有時(shí)候我們就會使用分類算法來處理回歸問題,顯然這將與監(jiān)督學(xué)習(xí)中處理回歸問題的原則不同。

其次,需要考慮的是數(shù)據(jù)問題。我們應(yīng)該充分了解數(shù)據(jù),對實(shí)際數(shù)據(jù)了解得越充分,越容易創(chuàng)建符合實(shí)際需求的應(yīng)用程序。主要應(yīng)該了解數(shù)據(jù)的以下特性:特征值是離散型變量還是連續(xù)型變量,特征值中是否存在缺失的值,何種原因造成缺失值,數(shù)據(jù)中是否存在異常值,某個(gè)特征發(fā)生的頻率如何(是否罕見得如同海底撈針),等等。充分了解上面提到的這些數(shù)據(jù)特性可以縮短選擇機(jī)器學(xué)習(xí)算法的時(shí)間

        我們只能在一定程度上縮小算法的選擇范圍,一般并不存在最好的算法或者可以給出最好結(jié)果的算法,同時(shí)還要嘗試不同算法的執(zhí)行效果。對于所選的每種算法,都可以使用其他的機(jī)器學(xué)習(xí)技術(shù)來改進(jìn)其性能。在處理輸入數(shù)據(jù)之后,兩個(gè)算法的相對性能也可能會發(fā)生變化。一般說來發(fā)現(xiàn)最好算法的關(guān)鍵環(huán)節(jié)是反復(fù)試錯(cuò)的迭代過程。

        機(jī)器學(xué)習(xí)算法雖然各不相同,但是使用算法創(chuàng)建應(yīng)用程序的步驟卻基本類似。

1.3 開發(fā)機(jī)器學(xué)習(xí)應(yīng)用程序的步驟

學(xué)習(xí)和使用機(jī)器學(xué)習(xí)算法開發(fā)應(yīng)用程序,通常遵循以下的步驟:

(1)收集數(shù)據(jù)

        我們可以使用很多方法收集樣本數(shù)據(jù),如制作網(wǎng)絡(luò)爬蟲從網(wǎng)站上抽取數(shù)據(jù)、 從RSS反饋或者API中得到信息、設(shè)備發(fā)送過來的實(shí)測數(shù)據(jù)(風(fēng)速、血糖等)。提取數(shù)據(jù)的方法非常多,為了節(jié)省時(shí)間與精力,可以使用公開可用的數(shù)據(jù)源。

(2)準(zhǔn)備輸入數(shù)據(jù)

        得到數(shù)據(jù)之后,還必須確保數(shù)據(jù)格式符合要求,采用的格式是python語言的list。使用這種標(biāo)準(zhǔn)數(shù)據(jù)格式可以融合算法和數(shù)據(jù)源,方便匹配操作。

此外還需要為機(jī)器學(xué)習(xí)算法準(zhǔn)備特定的數(shù)據(jù)格式,如某些算法要求特征值使用特定的格式,一些算法要求目標(biāo)變量和特征值是字符串類型,而另一些算法則可能要求是整數(shù)類型。但是與收集數(shù)據(jù)的格式相比,處理特殊算法要求的格式相對簡單得多。

(3)分析輸入數(shù)據(jù)

        此步驟主要是人工分析以前得到的數(shù)據(jù)。為了確保前兩步有效,最簡單的方法是用文本編輯器打開數(shù)據(jù)文件,査看得到的數(shù)據(jù)是否為空值。此外,還可以進(jìn)一步瀏覽數(shù)據(jù),分析是否可以識別出模式;數(shù)據(jù)中是否存在明顯的異常值,如某些數(shù)據(jù)點(diǎn)與數(shù)據(jù)集中的其他值存在明顯的差異。通過一維、二維或三維圖形展示數(shù)據(jù)也是不錯(cuò)的方法,然而大多數(shù)時(shí)候我們得到數(shù)據(jù)的特征值都不會低于三個(gè),無法一次圖形化展示所有特征。

        這一步的主要作用是確保數(shù)據(jù)集中沒有垃圾數(shù)據(jù)。如果是在產(chǎn)品化系統(tǒng)中使用機(jī)器學(xué)習(xí)算法 并且算法可以處理系統(tǒng)產(chǎn)生的數(shù)據(jù)格式,或者我們信任數(shù)據(jù)來源,可以直接跳過第3步。此步驟 需要人工干預(yù),如果在自動化系統(tǒng)中還需要人工干預(yù),顯然就降低了系統(tǒng)的價(jià)值。

(4)訓(xùn)練算法

        機(jī)器學(xué)習(xí)算法從這一步才真正開始學(xué)習(xí)。根據(jù)算法的不同,第4步和第5步是機(jī)器學(xué)習(xí)算法的核心。我們將前兩步得到的格式化數(shù)據(jù)輸入到算法,從中抽取知識或信息。這里得到的知識需要存儲為計(jì)算機(jī)可以處理的格式,方便后續(xù)步驟使用。

        如果使用無監(jiān)督學(xué)習(xí)算法,由于不存在目標(biāo)變量值,故而也不需要訓(xùn)練算法,所有與算法相 關(guān)的內(nèi)容都集中在第5步。

1.4 Python語言的優(yōu)勢

        基于以下三個(gè)原因,我們選擇python作為實(shí)現(xiàn)機(jī)器學(xué)習(xí)算法的編程語言:(1)python語法清晰; (2)易于操作純文本文件; (3)使用廣泛,存在大量的開發(fā)文檔。

        python具有清晰的語法結(jié)構(gòu),大家也把它稱作可執(zhí)行偽代碼(executable pseudo-code)。默認(rèn)安裝的python開發(fā)環(huán)境已經(jīng)附帶了很多高級數(shù)據(jù)類型,如列表、元組、字典、集合、隊(duì)列等,無 需進(jìn)一步編程就可以使用這些數(shù)據(jù)類型的操作。使用這些數(shù)據(jù)類型使得實(shí)現(xiàn)抽象的數(shù)學(xué)概念非常 簡單。此外,讀者還可以使用自己熟悉的編程風(fēng)格,如面向?qū)ο缶幊?、面向過程編程、或者函數(shù) 式編程。

        python語言處理和操作文本文件非常簡單,非常易于處理非數(shù)值型數(shù)據(jù)。python語言提供了豐富的正則表達(dá)式函數(shù)以及很多訪問web頁面的函數(shù)庫,使得從HTML中提取數(shù)據(jù)變得非常簡單直觀。

        在科學(xué)和金融領(lǐng)域python語言得到了廣泛應(yīng)用。SciPy和Numpy等許多科學(xué)函數(shù)庫都實(shí)現(xiàn)了向量和矩陣操作,這些函數(shù)庫增加了代碼的可讀性,學(xué)過線性代數(shù)的人都可以看懂代碼的實(shí)際功能。

        Python的科學(xué)工具可以與繪圖工具M(jìn)atplotlib協(xié)同工作。Matplotlib可以繪制2D、3D圖形,也可以處理科學(xué)研究中經(jīng)常使用到的圖形。

1.5 Numpy函數(shù)庫基礎(chǔ)

        機(jī)器學(xué)習(xí)算法涉及很多線性代數(shù)知識,因此在使用python語言構(gòu)造機(jī)器學(xué)習(xí)應(yīng)用時(shí),會經(jīng)常使用Numpy函數(shù)庫。如果不熟悉線性代數(shù)也不用著急,這里用到線性代數(shù)只是為了簡化不同的數(shù) 據(jù)點(diǎn)上執(zhí)行的相同數(shù)學(xué)運(yùn)算。將數(shù)據(jù)表示為矩陣形式,只需要執(zhí)行簡單的矩陣運(yùn)算而不需要復(fù)雜的循環(huán)操作。

到此,相信大家對“機(jī)器學(xué)習(xí)的基礎(chǔ)知識有哪些”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI