自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

機器學(xué)習(xí)的工作原理-代碼示例

人工智能 機器學(xué)習(xí)
訓(xùn)練模型以預(yù)測誰能幸存下來。如果您像我,則需要玩一些東西然后"自己動手"才能真正理解它。 在這里,我們將舉例說明機器學(xué)習(xí)的真正原理。

 訓(xùn)練模型以預(yù)測誰能幸存下來。

 

機器學(xué)習(xí)的工作原理-代碼示例

 

[注意:請使用我們的完全交互式筆記本在此處自行構(gòu)建模型。 無需任何編碼經(jīng)驗。]

如果您像我,則需要玩一些東西然后"自己動手"才能真正理解它。 在這里,我們將舉例說明機器學(xué)習(xí)的真正原理。

您將建立自己的機器學(xué)習(xí)模型,以預(yù)測乘客在泰坦尼克號上幸存的可能性。 該模型僅通過查看數(shù)據(jù)即可自行學(xué)習(xí)模式。

了解進(jìn)行機器學(xué)習(xí)的步驟

遵循以下步驟:

  • 加載數(shù)據(jù)并進(jìn)行可視化探索;
  • 為機器學(xué)習(xí)算法準(zhǔn)備數(shù)據(jù);
  • 訓(xùn)練模型-讓算法從數(shù)據(jù)中學(xué)習(xí);
  • 評估模型-查看它在從未見過的數(shù)據(jù)上的表現(xiàn)如何;
  • 分析模型-查看需要多少數(shù)據(jù)才能正常運行。

要自己構(gòu)建機器學(xué)習(xí)模型,請打開配套筆記本。 您將無需任何設(shè)置即可運行真實的機器學(xué)習(xí)代碼-它可以正常工作。

了解機器學(xué)習(xí)工具

關(guān)于機器學(xué)習(xí)工具,有很多選擇。 在本指南中,我們使用一些最受歡迎和功能最強大的機器學(xué)習(xí)庫,即:

  • Python:一種高級編程語言,以其易讀性著稱,是全球最受歡迎的機器學(xué)習(xí)語言。
  • Pandas:Python庫,將類似電子表格的功能引入該語言。
  • Seaborn:一個用于繪制圖表和其他圖形的庫。
  • Scikit學(xué)習(xí):Python的機器學(xué)習(xí)庫,提供用于預(yù)測數(shù)據(jù)分析的簡單工具。
  • DRLearn:為此數(shù)據(jù)集構(gòu)建的我們自己的DataRevenue Learn模塊。

這些都是很好的工具,因為它們既適用于初學(xué)者,也適用于大型公司(如摩根大通)。

探索我們的數(shù)據(jù)集

我們將使用著名的"泰坦尼克號"數(shù)據(jù)集-稍有病態(tài)但引人入勝的數(shù)據(jù)集,其中包含泰坦尼克號上乘客的詳細(xì)信息。 我們?yōu)槊课怀丝吞峁┝舜罅繑?shù)據(jù),包括:

  • 名稱,
  • 性別,
  • 年齡,
  • 機票艙位。

我們的數(shù)據(jù)采用行和列的標(biāo)準(zhǔn)形式,其中每一行代表一位乘客,每一列代表該乘客的屬性。 這是一個示例:

 

  1. import pandas as pd 
  2. from DRLearn import DRLearn 
  3.  
  4. titanic_dataset = pd.read_csv("titanic.csv", index_col=0) 
  5. titanic_dataset.head() 

 

機器學(xué)習(xí)的工作原理-代碼示例

 

 

> A few of the passengers that are in the titanic dataset. Source: Author

泰坦尼克號數(shù)據(jù)集中的一些乘客

可視化我們的數(shù)據(jù)集

機器學(xué)習(xí)模型很聰明,但是只能與我們提供給他們的數(shù)據(jù)一樣聰明。 因此,重要的第一步是深入了解我們的數(shù)據(jù)集。

在分析數(shù)據(jù)時,一個很好的起點是檢驗假設(shè)。 持有頭等艙機票的人更有可能生存,所以讓我們看看數(shù)據(jù)是否支持這一點。

您可以在配套筆記本中查看并運行代碼以產(chǎn)生這種可視化效果。

 

  1. DRLearn.plot_passenger_class(titanic_dataset) 

 

機器學(xué)習(xí)的工作原理-代碼示例

 

 

> 3rd class passengers had the worst survival rate, and 1st class passengers the best. Source: Autho

三等艙乘客的生存率最差,一等艙乘客的生存率最高。

頭等艙中超過60%的人幸存,而三等艙中只有不到30%的人幸存。

您可能還聽說過"婦女和兒童優(yōu)先"一詞。 讓我們看一下性別與生存率之間的相互作用。

 

  1. DRLearn.plot_passenger_gender(titanic_dataset) 

 

機器學(xué)習(xí)的工作原理-代碼示例

 

 

> Women were much more likely to survive than men. Source: Author

女人比男人更有可能生存。

同樣,我們看到我們的假設(shè)是正確的。 超過70%的女性得以幸存,而只有大約20%的男性得以幸存。

就像這樣,我們?yōu)閿?shù)據(jù)集創(chuàng)建了兩個基本的可視化。 我們可以在這里做更多的事情(對于生產(chǎn)機器學(xué)習(xí)項目,我們當(dāng)然可以這樣做)。 例如,多變量分析將顯示當(dāng)我們一次查看多個變量時會發(fā)生什么。

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

在將數(shù)據(jù)輸入到機器學(xué)習(xí)算法以訓(xùn)練模型之前,我們需要使其對我們的算法更有意義。 我們可以通過忽略某些列并重新格式化其他列來做到這一點。

忽略無用的列

我們已經(jīng)知道,旅客的機票號碼與他們的生存機會之間沒有任何關(guān)聯(lián),因此我們可以顯式忽略該列。 我們先刪除它,然后再將數(shù)據(jù)輸入模型。

重新格式化我們的數(shù)據(jù)

一些功能很有用,但不是原始形式。 例如,標(biāo)簽" male"(男性)和" female"(女性)對人類有意義,但對喜歡數(shù)字的機器沒有意義。 因此,我們可以將這些標(biāo)記分別編碼為" 0"和" 1"。

selected_features, target = DRLearn.extract_features(titanic_dataset)selected_features.sample(5)

一旦準(zhǔn)備好數(shù)據(jù)集,該格式將對機器更友好。 我們在下面提供了一個示例:我們消除了許多無用的列,而剩下的所有列都使用數(shù)字。

 

機器學(xué)習(xí)的工作原理-代碼示例

 

> After preparing the dataset it's simpler and now ready for machine learning. Source: Author

準(zhǔn)備完數(shù)據(jù)集后,它變得更簡單了,現(xiàn)在可以進(jìn)行機器學(xué)習(xí)了。

將數(shù)據(jù)集一分為二

現(xiàn)在我們需要訓(xùn)練我們的模型,然后對其進(jìn)行測試。 就像給小學(xué)生提供測試題作為家庭作業(yè)的示例,然后給出考試條件下看不見的問題一樣,我們將在一些數(shù)據(jù)上訓(xùn)練機器學(xué)習(xí)算法,然后查看其在其余數(shù)據(jù)上的表現(xiàn)如何。

 

機器學(xué)習(xí)的工作原理-代碼示例

 

> We split our dataset: One part for training the model, and one part for testing it. Source: Author

我們拆分了數(shù)據(jù)集:一部分用于訓(xùn)練模型,另一部分用于測試模型。

 

  1. X_train, X_test, y_train, y_test = DRLearn.split_dataset(selected_features, target, split=0.2) 

讓我們訓(xùn)練模型!

現(xiàn)在開始有趣的部分! 我們會將訓(xùn)練數(shù)據(jù)輸入模型中,并要求其查找模式。 在這一步中,我們?yōu)槟P吞峁?shù)據(jù)和所需的答案(無論乘客是否幸存)。

該模型從該數(shù)據(jù)中學(xué)習(xí)模式。

 

機器學(xué)習(xí)的工作原理-代碼示例

 

> Our machine learning model is trained on the Training set. Source: Author

我們的機器學(xué)習(xí)模型在訓(xùn)練集中進(jìn)行訓(xùn)練。

 

  1. model = DRLearn.train_model(X_train, y_train) 

測試我們的模型

現(xiàn)在,我們可以通過僅在數(shù)據(jù)集另一半中提供乘客的詳細(xì)信息來測試模型,而無需給出答案。 該算法不知道這些乘客是否幸免于難,但是它將嘗試根據(jù)從訓(xùn)練中學(xué)到的知識進(jìn)行猜測。

 

機器學(xué)習(xí)的工作原理-代碼示例

 

> Testing how well our machine learning model works by asking it to predict the results on the test

通過要求我們的機器學(xué)習(xí)模型預(yù)測測試數(shù)據(jù)的結(jié)果來測試其性能如何。

 

  1. DRLearn.evaluate_model(model, X_test, y_test) 

分析我們的模型

為了更好地了解我們的模型如何工作,我們可以:

  • 看看它最依賴哪些功能進(jìn)行預(yù)測;
  • 看看如果我們使用更少的數(shù)據(jù),其準(zhǔn)確性將如何變化。

第一個可以幫助我們更好地了解我們的數(shù)據(jù),第二個可以幫助我們了解是否值得嘗試獲取更大的數(shù)據(jù)集。

了解我們的模型發(fā)現(xiàn)的重要內(nèi)容

機器學(xué)習(xí)知道并非所有數(shù)據(jù)都同樣有趣。 通過對特定細(xì)節(jié)進(jìn)行加權(quán),可以做出更好的預(yù)測。 下面的權(quán)重表明,性別是迄今為止預(yù)測生存率的最重要因素。

 

  1. DRLearn.explain_model(model, X_train) 

 

機器學(xué)習(xí)的工作原理-代碼示例

 

> Our model relies mostly on gender, a bit on whether the passenger was in 3rd class or not and on t

我們的模型主要取決于性別,有點取決于乘客是否屬于三等艙以及其家庭人數(shù)。

我們還可以查看算法在預(yù)測特定乘客的生存時注意哪些數(shù)據(jù)方面。 下面我們看到一個算法認(rèn)為很可能幸存的乘客。 它特別注意以下事實:

  • 乘客不在三等艙;
  • 乘客是女性。

由于該乘客也不屬于頭等艙,因此略微降低了生存的機會,因此最終生存預(yù)測為93%。

 

  1. model_interpretation = DRLearn.interpret_model(model, X_test, y_test) 
  2. passenger_number = 3 
  3. DRLearn.analyze_passenger_prediction(model_interpretation, X_test, passenger_number) 

 

機器學(xué)習(xí)的工作原理-代碼示例

 

 

> How the model made a prediction for one particular passenger. She had a high survival rate because

該模型如何為一名特定乘客做出預(yù)測。 她的成年率很高,因為她是女性而不是三等班。

了解數(shù)據(jù)量如何影響我們的模型

讓我們對模型進(jìn)行多次訓(xùn)練,看看隨著數(shù)據(jù)量的增加它可以改善多少。 在這里,我們同時繪制了訓(xùn)練得分和測試得分。 后者更有趣,因為它告訴我們模型在看不見的數(shù)據(jù)上的表現(xiàn)如何。

訓(xùn)練得分可以被認(rèn)為是"公開考試":該模型已經(jīng)看到了答案,因此看起來比"測試得分"要高,但是該模型更容易對在測試過程中看到的數(shù)據(jù)表現(xiàn)良好 訓(xùn)練階段。

 

  1. DRLearn.visualise_training_progress(model, X_train, y_train, X_test, y_test) 

 

機器學(xué)習(xí)的工作原理-代碼示例

 

 

> More data makes our model better (test score). But after ~500 data points the improvement is minim

更多數(shù)據(jù)使我們的模型更好(測試分?jǐn)?shù))。 但是,在大約500個數(shù)據(jù)點之后,改進(jìn)很小。

在這里,我們看到模型擁有的數(shù)據(jù)越多,其性能就越好。 在開始時這會更加明顯,然后添加更多數(shù)據(jù)只會帶來很小的改進(jìn)。

機器學(xué)習(xí)模型不必是"黑匣子"算法。 模型分析可幫助我們了解它們?nèi)绾喂ぷ饕约叭绾胃倪M(jìn)它們。

結(jié)論

就是這樣-您已經(jīng)建立了自己的機器學(xué)習(xí)模型。 現(xiàn)在,您將能夠:

  • 了解數(shù)據(jù)科學(xué)團(tuán)隊的日常工作;
  • 與您的數(shù)據(jù)科學(xué)或機器學(xué)習(xí)團(tuán)隊更好地溝通;
  • 了解機器學(xué)習(xí)最能解決哪些問題;
  • 意識到機器學(xué)習(xí)畢竟不是那么令人生畏。

機器學(xué)習(xí)的復(fù)雜部分涉及構(gòu)建和擴(kuò)展定制解決方案的所有細(xì)節(jié)。 這正是我們的專長。因此,如果您需要后續(xù)步驟的幫助,請告訴我們。

責(zé)任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2020-05-19 09:11:20

機器學(xué)習(xí)技術(shù)數(shù)據(jù)

2018-09-18 15:57:44

機器學(xué)習(xí)ML神經(jīng)網(wǎng)絡(luò)

2023-11-06 10:50:35

機器學(xué)習(xí)LIME

2020-05-06 09:10:08

機器學(xué)習(xí)無監(jiān)督機器學(xué)習(xí)有監(jiān)督機器學(xué)習(xí)

2017-12-05 11:25:09

2017-08-31 11:09:48

機器學(xué)習(xí)比特幣

2021-04-30 13:00:43

人工智能

2017-05-27 15:21:38

JavaScript機器學(xué)習(xí)示例

2024-07-17 11:46:10

2020-12-09 15:05:40

大數(shù)據(jù)學(xué)習(xí)Zookeeper

2020-10-18 07:19:47

低代碼機器學(xué)習(xí)低代碼工具

2021-03-18 11:45:49

人工智能機器學(xué)習(xí)算法

2024-04-12 14:04:17

機器學(xué)習(xí)DNN

2020-05-19 14:00:09

人工智能機器學(xué)習(xí)AI

2021-12-30 11:30:13

人工智能機器學(xué)習(xí)技術(shù)

2021-09-24 16:30:28

無代碼低代碼機器學(xué)習(xí)

2022-02-10 08:07:41

機器學(xué)習(xí)低代碼開發(fā)

2019-08-20 14:01:22

HTTPSSSL協(xié)議

2009-07-06 12:32:26

JSP引擎

2010-08-02 16:14:54

點贊
收藏

51CTO技術(shù)棧公眾號