您現在的位置是:首頁 > 攝影首頁攝影

學 Python 沒找對路到底有多慘?| 碼書

由 CSDN 發表于 攝影2023-01-10
簡介將這些資料輸入到機器學習程式中,就可以讓計算機學習如何區分香蕉的好與壞

raw input什麼意思

學 Python 沒找對路到底有多慘?| 碼書

作者 | 非同步圖書

責編 | 胡巍巍

本文內容經授權摘自《Python機器學習》

方法不對,努力白費!

多少程式設計師想轉行AI,卻倒在了學Python的歧路上?

都知道做AI賺錢多,為何你總是找不對門路?

眾所周知,目前機器學習紅遍全球。男女老少都在學機器學習模型、分類器、神經網路。

你也想成為一份子嗎?但你該如何開始?以及到底該如何定義機器學習?到底什麼樣的教材,才是真正適合你的?今天的文章一定對你有幫助!

什麼是機器學習?

從出生的那天起,我們就一直在學習中度過。

隨著逐漸的成長,開始學習如何走路;透過傾聽周圍人的談話,學習並嘗試模仿;透過學習不同單詞的意思,使得在需要時懂得該如何進行表達。

同時也開始區分事情的好壞。例如,在第一次靠近火源時,會因灼熱而後退,從而明白要與火源保持一定的距離。

那麼,現在思考一下計算機的工作原理。

計算機可以在1s內遵循人類的指示處理數百萬條指令,並返回結果;它可以執行人類描述的任務,但是卻不能自行決定。

而機器學習此時就可以發揮作用了。如果給予計算機像人類一樣的思考能力,那會發生什麼呢?

可以用計算機能理解的方式,給出每一天的任務令其進行計算,還可以建立一些模型來幫助計算機在將來採取行動。

人類從經驗中學習知識,計算機則遵循指令執行任務。然而,其實還可以直接向計算機提供經驗讓其學習併為行動做準備。

目前我們是以結構化的方式定義經驗。因此,我們將計算機從資料(經驗)中進行學習的過程稱為機器學習(Machine Learning)。

以買香蕉為例。你的母親需要你去市場上買一些香蕉,同時她告訴你鮮黃色的香蕉很好吃。

你到一個水果商那裡,開始按照母親的建議挑選香蕉。你買了20根香蕉後就回家了,然而回家後你注意到有些香蕉的味道並不像其他的那樣好。

事實上,有5根香蕉是壞的。你逐個拿起香蕉並開始作出假設。 20根香蕉中有12根大香蕉和8根小香蕉。

這8根小香蕉都很美味,但是大香蕉就不一樣了,在12根大香蕉中有5根味道不如預期。

你已經掌握了挑選香蕉的知識。第二天,當你到達市場時,注意到有個水果商在打折出售香蕉,這些香蕉和昨天的不同,它們的皮帶有一些綠色。

從這裡買完香蕉回到家後,根據之前的經驗將每一根香蕉分為好與壞,會發現大的綠色香蕉很好吃,但是小的綠色香蕉的味道不如其他的好。這樣,你就學會了新規則。

你開始將自己看作是香蕉專家。有一天,你不得不去另一個城市參加表親的婚禮。

現在你驚訝地發現這裡所有的香蕉都很小,但是味道卻都很好。在這裡你瞭解到來自這個區域的香蕉是暢銷商品。

現在你確實已經是一名專家了。但如果你的姐姐很長時間沒有回家了,並且她喜歡石榴而討厭香蕉。你要怎麼辦呢?為了找到美味的石榴,你需要重新開始你的學習。

現在這個任務就可以由機器學習負責指引計算機完成了。可以使用資料點的形式向計算機提供知識。資料點的屬性稱為特徵(Feature),這裡的特徵是香蕉的大小(小、中、大)、顏色、產地等。

輸出(Output)就是味道(好或者壞)。將這些資料輸入到機器學習程式中,就可以讓計算機學習如何區分香蕉的好與壞。

機器學習演算法是一種根據經驗來給予你決策能力的智慧演算法。

為什麼選擇Python

Python在資料科學家中是非常受歡迎的程式語言。

第一,它免費且易學,不必為了小任務而浪費大量注意力;

第二,它是面向物件的語言,這也是其被大型開發者社群支援的原因;第三,巨大的開源庫支援。 Python具有相當數量的開源庫,能夠更迅速地實現資料科學和機器學習解決方案,而無須從頭開始編寫每一個演算法。像Pandas、 scikit-learn、 SciPy、 NumPy、 Keras這樣的庫對於快速實現機器學習演算法非常有用。

首先,透過一個例子瞭解如何使用程式語言來解決現實世界的問題。

假設舉辦一個聚會。你為每個進入聚會的人分配一個唯一的1~100之間的號碼。現在聚會結束了,你宣佈了一個訊息。

“會從1~200之間獲取一個隨機數。如果有兩個人的號碼之和與這個數字相等,就會獎勵這兩個人。”

現在瞭解到,已經向x個人分配了號碼。如何確定能否給其中兩個人獎勵呢?

可以嘗試使用Python來解決這個問題。首先,從列表中獲取輸入資料。

1numberList = list([43,23,1,67,54,2,34,56,23,65,12,9,87,4,33])

現在選擇一個隨機數並將其儲存在一個變數中。

1sumSelector = raw_input()

為了解決這個問題,必須先對資料進行排序。在Python列表中排序很簡單,可以透過sort函式來完成。

1numberList = numberList。sort()

透過上述語句,將排序後的數字賦值給變數。現在使用兩個指標:一個指向開始處(前指標);另一個指向結束處(後指標)。

檢查兩指標所指變數的和。如果和小於給定值(意味著當前的總和小於所需的總和),前指標向前移動一步並再次檢查;

如果和大於給定值(意味著當前的總和大於所需的總和),將後指標向後移動一步並再次檢查。

無論在任何位置,如果當前的總和等於要求的總和,便可以說,存在兩個人的數值之和與給定的數值相同,需要給予獎勵;

如果兩個指標相交併且仍然沒有達到所需的總和,則可以聲稱並不存在兩個人的數值之和與給定的數值相等。

以下是完整的解決方案。

1defisPrizeGiven(numberList,sumSelector):

2

3sumOfTwo = sumSelector

4

5 i=0

6

7 j = len(numberList) -1

8

9if(i>=j):

10

11returnFalse

12

13while(i<=j):

14

15 currentSum = numberList[i]+numberList[j]

16

17 print(i,j,currentSum)

18

19if(currentSum==sumOfTwo):

20

21returnTrue

22

23if(currentSum>sumOfTwo):

24

25 j=j-1

26

27else:

28

29 i=i+1

30

31returnFalse

為獲得所需答案,必須向函式傳遞排序列表和給定的數值(即兩數值的期望和)。

1if (isPrizeGiven(numberList,sumSelector):

2print(“No Escape。 Give Prize to Everyone”)

3else:

4print(“You Saved Yourself!!”)

即使現在不能理解此程式碼,也不要擔心。接下來我們還會對這段程式碼進行解析,並介紹程式設計語言的基本原理。

本文摘自《Python機器學習》

學 Python 沒找對路到底有多慘?| 碼書

《Python機器學習》

作者:[印]阿布舍克·維賈亞瓦吉亞

ISBN 978-7-115-50135-6/

此書為Python機器學習實用教程,Python 3程式設計師晉級必備圖書,本書提供配套資源可供讀者下載。

內容提要:

《Python機器學習》透過解釋數學原理和展示程式設計示例對機器學習進行了系統、全面的解析。

《Python機器學習》共分為12章,內容涵蓋了機器學習以及Python語言的基礎知識、特徵工程的概念與操作技術、資料視覺化技術的實現、監督學習及無監督學習演算法、文字分析、神經網路和深度學習、推薦系統的構建方法以及預測處理時間序列的方法等。

閱讀本書能夠加深讀者對機器學習的認識和理解,從而達到理論與實踐相結合、學以致用的目的。

喜歡這本書嗎?

CSDN聯合非同步圖書,

針對CSDN使用者推出限時7.5折的優惠價。

買一本書,

不過是兩杯咖啡的價格,

但如果掌握了本書的精華,

或可讓你升職加薪!

上進的你,

動動手指趕快把新知識納入囊中吧!

掃碼就可購買哦!