您好,登錄后才能下訂單哦!
本篇內容介紹了“什么是Python機器學習”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
什么是機器學習?
亞瑟·塞繆爾(Arthur Samuel)在1959年創造了“機器學習”一詞。他是人工智能和計算機游戲的先驅,并將機器學習定義為“使計算機無需明確編程即可學習的能力的研究領域”。
簡而言之,機器學習是人工智能(AI)的一種應用程序,它使程序(軟件)可以從經驗中學習并提高自己在完成一項任務時的自我,而無需進行明確的編程。例如,您將如何編寫一個程序來根據水果的各種屬性(例如顏色,形狀,大小或任何其他屬性)識別水果?
一種方法是對所有內容進行硬編碼,制定一些規則并使用它們來識別結果。這似乎是唯一可行的方法,但永遠無法制定適用于所有情況的完善規則。使用機器學習可以輕松解決此問題,而無需任何規則,這使其變得更加健壯和實用。您將在接下來的部分中看到我們將如何使用機器學習來完成此任務。
因此,我們可以說,機器學習是通過使機器具有最少的人工干預(即無需顯式編程)進行學習的能力,從而使機器的行為和決策更具人性化。現在出現了一個問題,程序如何獲得任何經驗以及從中學習?答案是數據。數據也被稱為機器學習的動力,我們可以肯定地說沒有數據就沒有機器學習。
您可能想知道,機器學習一詞是在1959年引入的,它可以追溯到很久以前,那么為什么直到最近幾年都沒有提及它?您可能需要注意,機器學習需要巨大的計算能力,大量數據以及能夠存儲如此龐大數據的設備。我們直到最近才滿足所有這些要求并可以練習機器學習。
它與傳統編程有何不同?
您是否想知道機器學習與傳統編程有何不同?好吧,在傳統編程中,我們會將輸入數據以及經過良好編寫和測試的程序饋入機器中以生成輸出。當涉及到機器學習時,在學習階段,輸入數據以及與數據相關聯的輸出將被饋送到機器中,并為自己制定程序。
如果您不能完全理解這些內容,請不要擔心,在接下來的部分中,您將獲得更好的理解。
為什么我們需要機器學習?
當今的機器學習具有它所需要的全部注意力。機器學習可以使許多任務實現自動化,尤其是只有人類才能利用其固有的智能來執行的任務。僅在機器學習的幫助下,才能將這種智能復制到機器上。
在機器學習的幫助下,企業可以自動化日常任務。它還有助于自動化并快速創建數據分析模型。各個行業都依賴大量數據來優化其運營并做出明智的決策。機器學習有助于創建可以處理和分析大量復雜數據以提供準確結果的模型。這些模型精確,可擴展,并且具有更少的周轉時間。通過構建這種精確的機器學習模型,企業可以利用有利可圖的機會并避免未知的風險。
圖像識別,文本生成和許多其他用例正在現實世界中找到應用。這擴大了機器學習專家成為受追捧的專業人員的視野。
目前的機器學習
在2012年,Alex Krizhevsky,Geoffrey Hinton和Ilya Sutskever發表了有影響力的研究論文,描述了一種可以顯著降低圖像識別系統錯誤率的模型。同時,谷歌的X Lab開發了一種機器學習算法,該算法能夠自主瀏覽YouTube視頻,以識別包含貓的視頻。2016年,AlphaGo(由Google DeepMind的研究人員創建,用于玩中國古代的圍棋游戲)在與Lee Sedol的五場比賽中贏得了四場比賽的勝利,Le Sedol是十多年來一直是世界頂級圍棋選手。
現在,在2020年,OpenAI發布了GPT-3,這是有史以來功能最強大的語言模型。它可以編寫有創意的小說,生成功能代碼,撰寫周到的業務備忘錄等。它的可能用例僅受我們的想象力限制。
機器學習的特點
自動化:如今,您的Gmail帳戶中有一個垃圾郵件文件夾,其中包含所有垃圾郵件。您可能想知道Gmail如何知道所有這些電子郵件都是垃圾郵件?這是機器學習的工作。
它可以識別垃圾郵件,因此很容易實現此過程的自動化。自動執行重復任務的能力是機器學習的最大特征之一。大量組織已經在使用基于機器學習的文書工作和電子郵件自動化。
例如,在金融部門,需要執行大量重復,數據繁重和可預測的任務。因此,該行業在很大程度上使用了不同類型的機器學習解決方案。
改善客戶體驗:對于任何企業而言,提供定制體驗和提供更好的服務,是提高參與度,提升品牌忠誠度和建立長期客戶關系的最關鍵方法之一。
機器學習可以幫助我們實現兩者。您是否曾經注意到,無論何時打開任何購物網站或在互聯網上看到任何廣告,它們大多與您最近搜索的內容有關?這是因為機器學習使我們能夠做出精確的驚人推薦系統。它們幫助我們定制用戶體驗。現
在開始使用該服務,如今,大多數公司都擁有一個聊天機器人,可以全天候(24×7)使用。例如,亞航的Eva。這些機器人提供了智能的答案,有時您甚至可能沒有注意到自己正在與機器人對話。
自動化數據可視化:過去,我們已經看到公司和個人正在生成大量數據。以Google,Twitter,Facebook等公司為例。他們每天產生多少數據?我們可以使用這些數據并可視化顯著的關系,從而使企業能夠制定更好的決策,從而使公司和客戶都從中受益。
借助用戶友好的自動化數據可視化平臺(例如AutoViz),企業可以獲取大量新見解,從而提高流程的生產率。
商業智能:機器學習特性與大數據分析結合使用時,可以幫助公司找到解決問題的方法,這些問題可以幫助企業發展并產生更多的利潤。
從零售到金融服務再到醫療保健,等等,機器學習已經成為促進業務運營的最有效技術之一。
機器學習的最佳語言是什么?
盡管有許多可用于機器學習的語言,但據我稱,Python是機器學習應用程序的最佳編程語言。這是由于以下部分提到的各種好處。可以用于機器學習應用程序的其他編程語言是R,C ++,JavaScript,Java,C#,Julia,Shell,TypeScript和Scala。R還是一種非常好的機器學習入門語言。
與其他編程語言相比,Python以其可讀性和相對較低的復雜性而聞名。機器學習應用程序涉及復雜的概念,例如微積分和線性代數,這些實現需要花費很多精力和時間。Python通過快速實施來幫助機器學習工程師驗證想法,從而減輕了負擔。您可以查看《Python教程》以獲得對該語言的基本了解。在機器學習中使用Python的另一個好處是預構建的庫。如下所述,針對不同類型的應用程序有不同的軟件包:
在處理圖像時使用Numpy,OpenCV和Scikit
文本處理時,NLTK與Numpy和Scikit一起
Librosa用于音頻應用
Matplotlib,Seaborn和Scikit用于數據表示
用于深度學習應用程序的TensorFlow和Pytorch
科學計算科學
Django,用于集成Web應用程序
熊貓用于高級數據結構和分析
Python提供了在面向對象的編程或腳本之間進行選擇的靈活性。也不需要重新編譯代碼。開發人員可以實施任何更改并立即查看結果。您可以將Python和其他語言一起使用以實現所需的功能和結果。
Python是一種通用的編程語言,可以在任何平臺上運行,包括Windows,MacOS,Linux,Unix等。從一個平臺遷移到另一個平臺時,代碼需要進行一些小的改動和更改,并且可以在新平臺上使用了。
以下是使用Python解決機器學習問題的好處的摘要:
機器學習的類型
機器學習大致分為三類
監督學習
無監督學習
強化學習
什么是監督學習?
讓我們從一個簡單的例子開始,說您正在教一個孩子區分狗和貓。你會怎么做?
您可以給他/她看狗,然后說“這是狗”,遇到貓時您會指出它是貓。當您向孩子展示足夠多的貓狗時,他可能會學會區分它們。如果他訓練有素,他也許就能認出他從未見過的不同品種的狗。
同樣,在監督學習中,我們有兩組變量。一種稱為目標變量,或稱為標簽(我們要預測的變量)和特征(可幫助我們預測目標變量的變量)。
我們向程序(模型)顯示功能以及與這些功能關聯的標簽,然后程序便能夠在數據中找到潛在的模式。以該數據集的示例為例,在該數據集中我們要根據房屋的大小來預測房屋的價格。作為目標變量的價格取決于作為特征的尺寸。
Number of rooms | Price |
1 | $100 |
3 | $300 |
5 | $500 |
在真實的數據集中,我們將有更多的行和不止一個功能,例如大小,位置,樓層數等等。
因此,可以說監督學習模型具有一組輸入變量(x)和一個輸出變量(y)。一種算法識別輸入和輸出變量之間的映射函數。關系為y = f(x)。
在我們已經知道輸出和算法每次都得到更正以優化其結果的意義上,對學習進行監視或監督。對數據集進行算法訓練并對其進行修改,直到達到可接受的性能水平。
我們可以將有監督的學習問題歸類為:
回歸問題–用于預測未來價值,并使用歷史數據對模型進行訓練。例如,預測房屋的未來價格。
分類問題–各種標簽訓練算法以識別特定類別中的項目。例如,狗或貓(如上例中所述),蘋果或橙子,啤酒或葡萄酒或水。
什么是無監督學習?
這種方法是沒有目標變量,只有輸入變量(特征)的方法。該算法可自行學習并在數據中發現令人印象深刻的結構。
目的是破譯數據中的基礎分布,以獲得有關數據的更多知識。
我們可以將無監督學習問題分組為:
聚類:這意味著將具有相同特征的輸入變量捆綁在一起。例如,根據搜索記錄對用戶進行分組
關聯:在這里,我們發現控制數據集之間有意義關聯的規則。例如,觀看“ X”的人也會觀看“ Y”。
什么是強化學習?
在這種方法中,機器學習模型經過訓練,可以根據他們對自己的行為所獲得的獎勵和反饋做出一系列決策。機器學習如何在復雜和不確定的情況下實現目標,并且在學習期間每次達到目標都會獲得獎勵。
強化學習與監督學習在沒有可用答案的意義上有所不同,因此強化代理決定執行任務的步驟。當沒有訓練數據集時,機器會從自己的經驗中學習。
機器學習算法
這可能是您機器學習過程中最耗時且最困難的過程。機器學習中有很多算法,您不需要完全了解它們就可以入門。但是我建議,一旦您開始練習機器學習,就應該開始學習其中最受歡迎的算法,例如:
線性回歸
邏輯回歸
決策樹
支持向量機
樸素貝葉斯
K近鄰
K均值
隨機森林
梯度提升算法
GBM
XGBoost
LightGBM
貓助推器
在這里,我將簡要概述一下機器學習中最簡單的算法之一,即K近鄰算法(這是一種監督學習算法),并說明如何將其用于回歸和分類。我強烈建議檢查線性回歸和邏輯回歸,因為我們將要實現它們,并在實現部分將結果與KNN(K最近鄰)算法進行比較。
您可能需要注意,對于回歸問題和分類問題,通常有單獨的算法。但是通過修改算法,我們可以將其用于分類和回歸,如下所示
K最近鄰居算法
KNN屬于一組懶惰的學習者。與急切的學習者(例如邏輯回歸,SVM,神經網絡)相反,懶惰的學習者只是將訓練數據存儲在內存中。在訓練階段,KNN整理數據(建立索引的過程),以便在推理階段有效地找到最接近的鄰居。否則,它將不得不將推理期間的每個新個案與整個數據集進行比較,從而使其效率很低。
因此,如果您想知道什么是訓練階段,急切的學習者和懶惰的學習者,現在請記住,訓練階段是算法從提供給它的數據中學習的時間。例如,如果您經歷了上面鏈接的線性回歸算法,則在訓練階段,該算法將嘗試找到最佳擬合線,該過程包括大量計算,因此需要大量時間,并且這種類型的算法被稱為渴望的學習者。另一方面,懶惰的學習者就像KNN一樣,不涉及很多計算,因此訓練速度更快。
分類問題的K-NN
現在讓我們看看如何使用K-NN進行分類。這里是一個假設的數據集,它試圖根據身高和體重(特征)來預測一個人是男性還是女性(標簽)。
高度(厘米)-特征 | 重量(kg)-特點。 | 性別(標簽) |
187 | 80 | 男 |
165 | 50 | 女 |
199 | 99 | 男 |
145 | 70 | 女 |
180 | 87 | 男 |
178 | 65 | 女 |
187 | 60 | 男 |
現在讓我們繪制這些點:
現在,我們要分類一個新點,因為它的高度為190 cm,重量為100 Kg。這是K-NN對這一點進行分類的方式:
鴻蒙官方戰略合作共建——HarmonyOS技術社區
選擇K的值,用戶在分析數據后選擇他認為最好的K值。
測量新點與其最接近的K個點的距離。有多種計算此距離的方法,其中最常用的方法是-Euclidian,Manhattan(用于連續數據點,即回歸問題)和Hamming距離(用于分類,即用于分類問題)。
確定更接近新點的點的類別,并相應地標記新點。因此,如果更接近我們的新點的大多數點屬于某個“ a”類,則我們的新點預計將來自“ a”類。
現在讓我們將此算法應用于我們自己的數據集。讓我們首先繪制新數據點。
現在讓我們取k = 3,即,我們將看到與新點最接近的三個點:
因此,它被分類為男性:
現在讓我們取k = 5的值,看看會發生什么:
正如我們所看到的,最接近新數據點的四個點是男性,只有一個點是女性,因此我們以多數為準,再次將其分類為“男性”。分類時,必須始終選擇K的值作為奇數。
回歸問題的K-NN
我們已經看到了如何使用K-NN進行分類。現在,讓我們看看進行了哪些更改以將其用于回歸。該算法幾乎相同,只有一個區別。在分類中,我們檢查了所有最近點的大部分。在這里,我們將取所有最近點的平均值,并將其作為預測值。讓我們再次以相同的示例為例,但是在這里我們必須根據一個人的身高(特征)來預測他的體重(標簽)。
高度(厘米)-特征 | 重量(kg)-標簽 |
187 | 80 |
165 | 50 |
199 | 99 |
145 | 70 |
180 | 87 |
178 | 65 |
187 | 60 |
現在我們有了一個高度為160cm的新數據點,我們將K值分別設為1,2和4來預測其權重。
當K = 1時:我們數據中最接近160cm的點是165cm,其權重為50,因此我們得出的結論是預測的權重本身就是50。
當K = 2時:兩個最接近的點分別是165和145,權重分別等于50和70。取平均值,我們說預測重量為(50 + 70)/ 2 = 60。
當K = 4時:重復相同的過程,現在我們取4個最接近的點,因此我們得到70.6作為預測的權重。
您可能會認為這真的很簡單,并且機器學習沒有什么特別的,它只是基礎數學。但是請記住,這是最簡單的算法,一旦前進,您將看到更加復雜的算法。
機器學習步驟
我希望機器學習只是在數據上應用算法并獲得預測值,但這不是那么簡單。機器學習中有幾個步驟對于每個項目都是必須的。
1. 收集數據:這可能是最重要和最耗時的過程。在這一步中,我們需要收集可以幫助我們解決問題的數據。例如,如果您要預測房屋的價格,我們需要一個適當的數據集,其中包含有關過去房屋銷售的所有信息,然后形成表格結構。我們將在實現部分中解決類似的問題。
2. 準備數據:有了數據后,我們需要將其以正確的格式進行處理。預處理涉及各種步驟,例如數據清理,例如,如果您的數據集包含一些空值或異常值(例如,字符串而不是數字),您將如何處理它?我們可以采用多種方法,但一種簡單的方法是只刪除具有空值的行。
同樣有時候在數據集中,我們可能會有對結果沒有影響的列,例如id,我們也將這些列也刪除了。我們通常使用數據可視化通過圖形和圖表對數據進行可視化,然后在分析圖形之后確定特點是important.Data預處理是一個巨大的話題。
3. 選擇模型:現在我們的數據已經準備就緒,可以輸入到機器學習算法中了。如果您想知道什么是模型?通常,“機器學習算法”與“機器學習模型”可以互換使用。模型是對數據運行的機器學習算法的輸出。
簡單來說,當我們對所有數據實施算法時,我們得到的輸出包含所有規則,數字以及進行預測所需的任何其他特定于算法的數據結構。例如,在對數據執行線性回歸后,我們得到了最佳擬合線的方程式,該方程式稱為模型。下一步通常是訓練模型,以防萬一我們不想調整超參數并選擇默認參數。
4. 超參數調整:超參數 至關重要,因為它們控制著機器學習模型的整體行為。最終目標是找到能夠為我們帶來最佳結果的超參數的最佳組合。但是這些超參數是什么?記住我們的K-NN算法中的變量K。
當我們設置不同的K值時,我們會得到不同的結果.K的最佳值不是預先定義的,并且對于不同的數據集是不同的。沒有方法可以知道K的最佳值,但是您可以嘗試不同的值并檢查哪個值可獲得最佳結果。這里的K是一個超參數,每個算法都有自己的超參數,我們需要調整它們的值以獲得最佳結果。
5. 評估:您可能想知道,如何知道模型的性能好壞,還有什么比在某些數據上測試模型更好的方法呢?該數據被稱為測試數據,并且不能是我們在其上訓練算法的數據(訓練數據)的子集。
訓練模型的目的不是讓它學習訓練數據集中的所有值,而是識別數據中的基礎模式,并基于此模式對從未見過的數據進行預測。有多種評估方法,例如K折交叉驗證等。我們將在下一節中詳細討論此步驟。
6. 預測:現在我們的模型在測試集上也表現良好,我們可以在現實世界中使用它,并希望它在現實世界的數據上能夠表現良好。
機器學習的優勢
1. 輕松識別趨勢和模式
機器學習可以查看大量數據,并發現人類看不到的特定趨勢和模式。例如,對于像Amazon和Flipkart這樣的電子商務網站,它可以了解其用戶的瀏覽行為和購買歷史,以幫助他們選擇合適的產品,交易和提醒。它使用結果向他們顯示相關廣告。
2. 持續改進
我們將不斷生成新數據,并在將數據提供給機器學習模型時幫助其隨時間升級并提高其性能和準確性。我們可以說,這就像獲得經驗一樣,因為他們不斷提高準確性和效率。這使他們可以做出更好的決策。
3. 處理多維和多元數據
機器學習算法擅長處理多維和多類型的數據,并且它們可以在動態或不確定的環境中做到這一點。
4. 廣泛的應用
您可以是電子零售商或醫療保健提供者,并可以使用機器學習。在適用的情況下,它具有幫助向客戶提供更多個人體驗的能力,同時還可以針對合適的客戶。
“什么是Python機器學習”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。