旗下產(chǎn)業(yè): A產(chǎn)業(yè)/?A實(shí)習(xí)/?A計(jì)劃
全國(guó)統(tǒng)一咨詢熱線:010-5367 2995
首頁(yè) > 熱門文章 > 大數(shù)據(jù)分析 > 大數(shù)據(jù)分析培訓(xùn)課程機(jī)器學(xué)習(xí)

大數(shù)據(jù)分析培訓(xùn)課程機(jī)器學(xué)習(xí)

時(shí)間:2020-08-11來源:5wd995.cn點(diǎn)擊量:作者:Sissi
時(shí)間:2020-08-11點(diǎn)擊量:作者:Sissi



  大數(shù)據(jù)分析培訓(xùn)課程機(jī)器學(xué)習(xí)這份簡(jiǎn)單易懂的指南對(duì)開始進(jìn)行項(xiàng)目所需的所有機(jī)器學(xué)習(xí)先決條件進(jìn)行了結(jié)構(gòu)化概述,包括從導(dǎo)入和清除數(shù)據(jù)到建模和生產(chǎn)的完整數(shù)據(jù)管道。
 

  我們都從考慮數(shù)據(jù)集或目標(biāo)入手。一旦我們發(fā)現(xiàn),收集或刮我們的數(shù)據(jù),我們將其拉起,并見證了壓倒性的視線號(hào)碼,更多號(hào)碼,類別,也許有些話無情的細(xì)胞!幼稚的想法擺在我們的腦海中,利用我們的機(jī)器學(xué)習(xí)能力來處理這種糾結(jié)的混亂……但是快速搜索顯示了在訓(xùn)練模型之前我們需要考慮的許多任務(wù) !
 

  一旦克服了不守規(guī)矩的數(shù)據(jù)帶來的沖擊,我們就會(huì)尋找與強(qiáng)大的克星戰(zhàn)斗的方式。我們首先嘗試將數(shù)據(jù)導(dǎo)入Python。它在紙上比較簡(jiǎn)單,但是過程可能會(huì)稍有復(fù)雜。盡管如此,我們只需要付出一點(diǎn)努力。
 

  不浪費(fèi)時(shí)間,我們就開始進(jìn)行數(shù)據(jù)清理,以消除虛假信息并暴露出美麗的事物。我們的方法從簡(jiǎn)單開始-觀察并刪除。它工作了好幾次,但后來我們意識(shí)到...它確實(shí)不能使我們伸張正義!但是,為了處理混亂,我們找到了一個(gè)強(qiáng)大的工具可以添加到我們的武器庫(kù)中:圖表!使用我們的圖形,我們可以了解我們的數(shù)據(jù),其中的模式以及缺少的地方。我們可以插值 (填寫)或刪除丟失的數(shù)據(jù)。
 

  最后,我們應(yīng)對(duì)我們高度期待的挑戰(zhàn),即數(shù)據(jù)建模!通過少量研究,我們發(fā)現(xiàn)了常用的策略和模型。破譯我們應(yīng)該使用哪一個(gè)有點(diǎn)困難,但是我們?nèi)匀辉O(shè)法弄清楚并弄清楚了所有這些!

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

  但是,如果不做一些令人印象深刻的事情,我們就無法完成一個(gè)項(xiàng)目。因此最終產(chǎn)品網(wǎng)站應(yīng)用程序甚至報(bào)告將使我們走得更遠(yuǎn)!我們知道第一印象很重要,因此我們修復(fù)了GitHub存儲(chǔ)庫(kù),并確保對(duì)所有內(nèi)容進(jìn)行了充分的記錄和解釋?,F(xiàn)在,我們終于可以向全世界展示我們的辛勤工作!

第1章-導(dǎo)入數(shù)據(jù)
 

  數(shù)據(jù)具有各種形狀和大小,因此我們用于將所有內(nèi)容轉(zhuǎn)換為代碼的過程通常會(huì)有所不同。
 

  數(shù)據(jù)清理的難點(diǎn)不是編碼或理論,而是我們的準(zhǔn)備!當(dāng)我們第一次開始一個(gè)新項(xiàng)目并下載我們的數(shù)據(jù)集時(shí),可能很想打開代碼編輯器并開始輸入...但這對(duì)我們沒有任何好處。如果要搶先一步,我們需要為數(shù)據(jù)的最佳和最差部分做好準(zhǔn)備。為此,我們需要通過手動(dòng)檢查電子表格來開始基本操作。一旦了解了數(shù)據(jù)的基本格式(文件類型以及所有特殊性),我們就可以將其全部放入Python中。
 

  當(dāng)我們很幸運(yùn)并且只有一個(gè)電子表格時(shí),我們可以使用Pandas的 read_csv 函數(shù)(讓它知道我們的數(shù)據(jù)在哪里):
 

  pd.read_csv(“ file_path.csv”)
 

  實(shí)際上,我們遇到了更復(fù)雜的情況,因此請(qǐng)注意:
 

  a)該文件以不需要的信息開頭(我們需要跳過)

  b)我們只想導(dǎo)入幾列

  c)我們想重命名我們的專欄

  d)數(shù)據(jù)包括日期

  e)我們希望將來自多個(gè)來源的數(shù)據(jù)合并到一個(gè)地方

  f)數(shù)據(jù)可以分組在一起
 

  盡管我們正在討論各種場(chǎng)景,但是通常一次只能處理幾個(gè)場(chǎng)景。
 

  我們的前幾個(gè)問題(導(dǎo)入數(shù)據(jù)/重命名列的特定部分)很容易使用一些參數(shù)來處理,例如要跳過的行數(shù),要導(dǎo)入的特定列以及我們的列名:
 

  pd.read_csv(“ file_path.csv”,skiprows = 5,usecols = [0,1],名稱= [“ Column1”,“ Column2”])
 

  每當(dāng)我們的數(shù)據(jù)分散在多個(gè)文件中時(shí),我們都可以使用Pandas concat 函數(shù)將它們合并 。該 CONCAT 函數(shù)組合的清單 數(shù)據(jù)框的一起:
 

  my_spreadsheets = [pd.read_csv(“ first_spreadsheet.csv”),pd.read_csv(“ second_spreadsheet.csv”))]

  pd.concat(my_spreadsheets,ignore_index = True)
 

  我們解析以 合并 一個(gè)電子表格列表(就像以前一樣導(dǎo)入)。當(dāng)然,可以以任何方式獲得列表(因此,花哨的列表理解或每個(gè)文件的臨時(shí)列表也同樣適用),但請(qǐng)記住, 我們需要數(shù)據(jù)幀,而不是文件名/路徑!
 

  如果沒有CSV文件,Pandas仍然可以使用!我們可以只 換出 read_csv 為 read_excel, read_sql或其他 選項(xiàng)。
 

  在所有數(shù)據(jù)都位于Pandas數(shù)據(jù)框中之后,我們需要仔細(xì)檢查數(shù)據(jù)的格式是否正確。實(shí)際上,這意味著檢查每個(gè)系列數(shù)據(jù)類型并確保它們不是通用對(duì)象。我們這樣做是為了確保我們可以將Pandas內(nèi)置功能用于數(shù)字,分類和日期/時(shí)間值。為此,只需運(yùn)行 DataFrame.dtypes即可。如果輸出看起來合理(即數(shù)字是數(shù)字,類別是類別等),那么我們應(yīng)該繼續(xù)進(jìn)行。但是,通常情況并非如此,因?yàn)槲覀冃枰臄?shù)據(jù)類型!這可以通過Pandas DataFrame.astype完成 。如果這不起作用,則應(yīng)為該特定轉(zhuǎn)換提供另一個(gè)Pandas函數(shù):
 

  data [“ Rating”] = data [“ Rating”]。as_type(“ category”)

  data [“ Number”] = pd.to_numeric(data [“ Number”])

  data [“ Date”] = pd.to_datetime(data [“ Date”])

  data [“ Date”] = pd.to_datetime(data [[“ Year”,“ Month”,“ Day”,“ Hour”,“ Minute”]])
 

  如果我們需要分析單獨(dú)的數(shù)據(jù)組(即,也許我們的數(shù)據(jù)按國(guó)家劃分),則可以使用Pandas groupby。我們可以使用 groupby 選擇特定的數(shù)據(jù),并分別在每個(gè)組上運(yùn)行函數(shù):
 

  data.groupby(“ Country”)。get_group(“ Australia”)

  data.groupby(“ Country”)。mean()
 

  其他更利基的技巧,例如多/層次索引,在特定情況下也可能有所幫助,但在理解和使用方面則更加棘手。
 

第2章-數(shù)據(jù)清理
 

  數(shù)據(jù)是有用的,數(shù)據(jù)是必要的。但是,它 必須干凈而且要點(diǎn)!如果我們的數(shù)據(jù)無處不在,那么它對(duì)我們的機(jī)器學(xué)習(xí)模型將毫無用處。
 

  每個(gè)人都會(huì)因缺少數(shù)據(jù)而發(fā)瘋,但是隧道盡頭總是一片曙光。
 

  進(jìn)行數(shù)據(jù)清理的最簡(jiǎn)單,最快的方法是問自己:
 

  數(shù)據(jù)中的哪些功能會(huì)影響最終目標(biāo)?
 

  最終目標(biāo)是指我們要進(jìn)行預(yù)測(cè),分類或分析的任何變量。這樣做的目的是縮小我們的范圍,而不會(huì)陷入無用信息的泥潭。
 

  一旦知道了我們的主要目標(biāo)特征是什么,我們就可以嘗試查找模式,關(guān)系,丟失的數(shù)據(jù)等等。繪制圖形的一種簡(jiǎn)單直觀的方法!快速使用Pandas繪制數(shù)據(jù)集中的每個(gè)變量,然后嘗試查看所有內(nèi)容適合的位置。
 

  一旦我們確定了數(shù)據(jù)中潛在的問題或趨勢(shì),就可以嘗試對(duì)其進(jìn)行修復(fù)。通常,我們有以下選擇:
 

  a)刪除缺失的條目

  b)刪除整列數(shù)據(jù)

  c)填寫缺失的數(shù)據(jù)條目

  d)重新采樣數(shù)據(jù)(即更改分辨率)

  e)收集更多信息
 

  為了從識(shí)別丟失的數(shù)據(jù)轉(zhuǎn)變?yōu)檫x擇處理數(shù)據(jù)的方式,我們需要考慮它如何影響最終目標(biāo)。有了缺失的數(shù)據(jù),我們會(huì)刪除所有對(duì)最終結(jié)果似乎沒有重大影響的東西(即,我們無法找到有意義的模式),或者似乎 缺少太多東西無法獲得價(jià)值的東西。有時(shí),我們也決定刪除少量丟失的數(shù)據(jù)(因?yàn)楸忍畛鋽?shù)據(jù)更容易)。
 

  如果我們決定擺脫信息, 則可以使用Pandas DataFrame.drop。它從數(shù)據(jù)框中刪除列或行。它很容易使用,但是請(qǐng)記住, 熊貓默認(rèn)情況下不會(huì)從源數(shù)據(jù)框中修改/刪除數(shù)據(jù),因此 必須指定inplace = True??赡苄枰⒁獾氖?, axis 參數(shù)指定要?jiǎng)h除的是行還是列。
 

  當(dāng)不刪除整列,或者特別針對(duì)丟失的數(shù)據(jù)時(shí),依賴一些漂亮的Pandas函數(shù)通常會(huì)很有用。為了刪除空值,可以使用DataFrame.dropna 。請(qǐng)記住,盡管默認(rèn)情況下 dropna會(huì) 完全刪除所有缺失的值。然而,參數(shù)設(shè)置或者 如何 給 所有 或設(shè)定閾值(脫粒,代表許多空值是如何要求它刪除)可以彌補(bǔ)這一點(diǎn)。
 

  如果我們有少量不規(guī)則的缺失值,則可以用幾種方法填充它們。最簡(jiǎn)單的是 DataFrame.fillna ,它將缺少的值設(shè)置為某個(gè)預(yù)設(shè)值。更為復(fù)雜但靈活的選項(xiàng)是使用DataFrame.interpolate進(jìn)行插值 。插值基本上允許任何人只需設(shè)置 方法 ,他們想更換每個(gè)空值。這些包括上一個(gè)/下一個(gè)值,線性和時(shí)間(根據(jù)數(shù)據(jù)推斷出最后兩個(gè))。無論何時(shí),只要有時(shí)間,時(shí)間就是自然的選擇,否則,請(qǐng)根據(jù)要插值的數(shù)據(jù)量和復(fù)雜程度做出合理的選擇。
 

  data [“ Column”]。fillna(0,inplace = True)

  data [[“ Column”]] = data [[“ Column”]]。interpolate(method =“ linear”)
 

  如上所示,需要在純粹包含缺少數(shù)據(jù)的列的數(shù)據(jù)幀中傳遞插值 (否則將引發(fā)錯(cuò)誤)。
 

  每當(dāng)我們看到定期丟失的數(shù)據(jù)或使用不同時(shí)標(biāo)的多個(gè)數(shù)據(jù)源時(shí)(例如確??梢越M合分鐘和小時(shí)的測(cè)量結(jié)果),重采樣就很有用。直觀地理解重采樣可能會(huì)有點(diǎn)困難,但是當(dāng)您在特定時(shí)間范圍內(nèi)平均測(cè)量值時(shí),這是必不可少的。例如,我們可以通過指定要獲取每個(gè)月值的平均值來獲取月值:
 

  data.resample(“ M”)。mean()
 

  “ M”代表月份,可以用“ Y”代替年份和其他選項(xiàng)。
 

  盡管數(shù)據(jù)清理過程可能具有很大的挑戰(zhàn)性,但是如果我們記住我們的初衷,它將變成更加邏輯和直接的任務(wù)!如果我們?nèi)匀粵]有所需的數(shù)據(jù),則可能需要回到第一階段并收集更多數(shù)據(jù)。 請(qǐng)注意,缺少數(shù)據(jù)表示數(shù)據(jù)收集存在問題,因此仔細(xì)考慮并記錄發(fā)生的位置非常有用。
 

  為了完成操作,Pandas的 unique 和 value_counts 函數(shù)可用于確定要直接刪除的功能以及進(jìn)一步繪制和研究的功能。
 

第3章-可視化
 

  可視化聽起來很簡(jiǎn)單,確實(shí)如此,但是很難... 不過于復(fù)雜。對(duì)于我們而言,將地塊視為創(chuàng)建瑣事實(shí)在太容易了。但是,這些壞孩子做得非常好-直觀地展示了我們數(shù)據(jù)的內(nèi)部運(yùn)作方式!只記得:
 

  我們對(duì)數(shù)據(jù)進(jìn)行圖形化處理,以查找并解釋一切工作原理。
 

  因此,當(dāng)您遇到想法或不確定要做什么時(shí),我們基本上總是可以退回到 識(shí)別有用的模式和有意義的關(guān)系上。這似乎有些無聊,但確實(shí)很有用。
 

  我們的目標(biāo)不是繪制精美的六邊形圖,而是描繪正在發(fā)生的事情,因此 絕對(duì)任何人都 可以簡(jiǎn)單地解釋一個(gè)復(fù)雜的系統(tǒng)!
 

  不可否認(rèn)的是,一些技術(shù)有用:
 

  a)數(shù)據(jù)過多時(shí)重新采樣

  b)當(dāng)?shù)貕K比例不同時(shí)的輔助軸

  c)當(dāng)我們的數(shù)據(jù)可以分類時(shí)進(jìn)行分組

  d)要開始繪制圖形,只需 在任何系列或數(shù)據(jù)幀上使用Pandas .plot()!當(dāng)我們需要更多時(shí),我們可以深入研究MatPlotLib,Seaborn或交互式繪圖庫(kù)。
 

  data.plot(x =“列1名稱”,y =“列2名稱”,kind =“欄”,figsize =(10,10))

  data.plot(x =“列1名稱”,y =“列3名稱”,secondary_y = True)

  data.hist()

  data.groupby(“ group”)。boxplot()
 

  在90%的時(shí)間里,此基本功能就足夠了(此處提供更多信息),而如果沒有,搜索應(yīng)該揭示如何 繪制特別奇異的圖。
 

第4章-建模
 

  4.1)簡(jiǎn)要概述
 

  現(xiàn)在終于到了有趣的東西-產(chǎn)生結(jié)果。訓(xùn)練scikit學(xué)習(xí)模型似乎 很簡(jiǎn)單,但是沒有人詳細(xì)介紹!因此,說實(shí)話,并非每個(gè)數(shù)據(jù)集和模型都不相等。
 

  我們的建模方法會(huì)根據(jù)我們的數(shù)據(jù)而大相徑庭。有三個(gè)特別重要的因素:
 

  a)問題類型

  b)量數(shù)據(jù)

  c)數(shù)據(jù)復(fù)雜度
 

  問題的類型歸結(jié)為我們是要預(yù)測(cè)類/標(biāo)簽(稱為 分類),值(稱為 回歸)還是對(duì)數(shù)據(jù)進(jìn)行分組(稱為 聚類)。如果我們?cè)噲D在已經(jīng)有我們要預(yù)測(cè)的示例的數(shù)據(jù)集上訓(xùn)練模型,那么我們將模型稱為監(jiān)督的,如果不是,則稱其為 無監(jiān)督的??捎脭?shù)據(jù)量及其復(fù)雜程度預(yù)示了模型將足夠簡(jiǎn)單。 具有更多功能(即列)的數(shù)據(jù)往往更復(fù)雜。
 

  解釋復(fù)雜性的關(guān)鍵是要了解哪些模型 對(duì)我們的數(shù)據(jù)而言太好或太壞。
 

  模特 的合身度可為 我們提供這一信息!如果模型難以解釋我們的數(shù)據(jù)(過于簡(jiǎn)單),我們可以說它 不合適,而如果模型完全過大(過于復(fù)雜),我們就說它 過度適合。我們可以將其視為從什么都不學(xué)到記憶一切的頻譜。我們需要保持平衡,以確保我們的模型 能夠?qū)?我們的結(jié)論歸納 為新信息。這通常稱為偏差方差折衷。 請(qǐng)注意,復(fù)雜度也會(huì)影響模型的可解釋性。
 

  復(fù)雜的模型需要花費(fèi)大量的時(shí)間進(jìn)行訓(xùn)練,尤其是對(duì)于大型數(shù)據(jù)集。因此,升級(jí)該計(jì)算機(jī),隔夜運(yùn)行模型,然后放松一會(huì)兒!
 

  制備
 

  4.2)拆分?jǐn)?shù)據(jù)
 

  在訓(xùn)練模型之前,請(qǐng)務(wù)必注意,我們將需要一些數(shù)據(jù)集對(duì)其進(jìn)行測(cè)試(因此我們知道其性能如何)。因此,我們經(jīng)常將數(shù)據(jù)集劃分為 單獨(dú)的訓(xùn)練和測(cè)試集。這使我們能夠測(cè)試模型對(duì)通用的新數(shù)據(jù)的泛化程度。這通常是可行的,因?yàn)槲覀冎牢覀兊臄?shù)據(jù)可以很好地代表現(xiàn)實(shí)世界。
 

  實(shí)際的測(cè)試數(shù)據(jù)量并不重要,但是經(jīng)常使用80%的訓(xùn)練和20%的測(cè)試。
 

  在帶有Scikit的Python中,學(xué)習(xí) train_test_split 函數(shù)可以做到這一點(diǎn):
 

  train_data,test_data = train_test_split(數(shù)據(jù))
 

  train_data,test_data = train_test_split(數(shù)據(jù))
 

  交叉驗(yàn)證是將數(shù)據(jù)集分為多個(gè)折疊(即原始數(shù)據(jù)集的子集或部分)的地方。 與使用單個(gè)測(cè)試/驗(yàn)證集相比,這往往更健壯并能 抵抗過度擬合!幾個(gè)scikit-learn函數(shù)可幫助進(jìn)行 交叉驗(yàn)證。但是,通常是直接通過網(wǎng)格或隨機(jī)搜索(如下所述)完成的。
 

  cross_val_score(模型,輸入數(shù)據(jù),輸出數(shù)據(jù),cv = 5)
 

  cross_val_score(模型,輸入數(shù)據(jù),輸出數(shù)據(jù),cv = 5)
 

  4.3)超參數(shù)調(diào)整
 

  我們的模型無法解釋某些因素,因此我們 設(shè)置了某些超參數(shù)。這些模型的模型各不相同,但我們可以通過人工試驗(yàn)和錯(cuò)誤,也可以通過諸如網(wǎng)格或隨機(jī)搜索之類的簡(jiǎn)單算法找到最佳值。使用網(wǎng)格搜索,我們嘗試所有可能的值(蠻力),并通過某種分布/選擇來隨機(jī)搜索隨機(jī)值。兩種方法通常都使用交叉驗(yàn)證。
 

  scikit-learn中的網(wǎng)格搜索通過參數(shù) 字典進(jìn)行。每個(gè)輸入鍵代表要調(diào)整的超參數(shù),值(列表或元組)是要選擇的值的選擇:
 

  參數(shù)= {'內(nèi)核':('線性','rbf'),'C':[1,10]}
 

  型號(hào)= = SVC()
 

  網(wǎng)格= GridSearchCV(模型,param_grid =參數(shù))
 

  創(chuàng)建網(wǎng)格后,可以使用它來訓(xùn)練模型并提取分?jǐn)?shù):
 

  grid.fit(train_input,train_output)
 

  best_score,best_depth = grid.best_score_,grid.best_params_
 

  這里重要的是要記住,我們需要進(jìn)行 培訓(xùn)而不是測(cè)試數(shù)據(jù)。即使使用交叉驗(yàn)證來測(cè)試模型,我們最終還是要盡力使訓(xùn)練數(shù)據(jù)最合適,并且隨后將繼續(xù)在測(cè)試集上測(cè)試每個(gè)模型:
 

  test_predictions = grid.predict(test_input)
 

  在scikit-learn中,隨機(jī)搜索的工作原理類似,但由于我們需要知道每個(gè)超參數(shù)采用哪種分布類型而變得稍微復(fù)雜一些。盡管從理論上講,它可以更快地產(chǎn)生相同或更好的結(jié)果,但這種情況因情況而異。 為了簡(jiǎn)單起見,最好堅(jiān)持使用網(wǎng)格搜索。
 

  4.4)型號(hào)選擇
 

  4.4.1)使用模型
 

  使用scikit-learn,就像找到我們所需的模型名稱然后為它創(chuàng)建變量一樣簡(jiǎn)單。檢查文檔的鏈接以獲取更多詳細(xì)信息!例如
 

  support_vector_regressor = SVR()
 

  4.4.2)基本選擇
 

  線性/邏輯回歸
 

  線性回歸 試圖將 一條直線擬合 到我們的數(shù)據(jù)。這是最基本和最基本的模型。線性回歸有多種變體,例如套索和嶺回歸(這是防止過度擬合的正則化方法)。多項(xiàng)式回歸可用于擬合更高階的曲線(如拋物線和其他曲線)。Logistic回歸是可用于分類的另一個(gè)變體。
 

  支持向量機(jī)
 

  就像線性/邏輯回歸一樣, 支持向量機(jī)(SVM) 嘗試將直線或曲線擬合到數(shù)據(jù)點(diǎn)。但是,使用SVM的目的是最大化邊界和每個(gè)點(diǎn)之間的距離(而不是使線/曲線穿過每個(gè)點(diǎn))。
 

  支持向量機(jī)的主要優(yōu)點(diǎn)是它們使用不同內(nèi)核的能力 。內(nèi)核是一種計(jì)算相似度的函數(shù)。這些內(nèi)核允許線性和非線性數(shù)據(jù),同時(shí)保持相當(dāng)高的效率。內(nèi)核將輸入映射到更高維的空間,因此出現(xiàn)邊界。對(duì)于大量功能,此過程通常不可行。神經(jīng)網(wǎng)絡(luò)或其他模型將可能是更好的選擇!
 

  神經(jīng)網(wǎng)絡(luò)
 

  所有的嗡嗡聲總是與深度學(xué)習(xí)和 神經(jīng)網(wǎng)絡(luò)有關(guān)。它們是復(fù)雜,緩慢且資源密集的模型,可用于復(fù)雜數(shù)據(jù)。但是,當(dāng)遇到大型非結(jié)構(gòu)化數(shù)據(jù)集時(shí),它們非常有用。
 

  使用神經(jīng)網(wǎng)絡(luò)時(shí),請(qǐng)確保當(dāng)心過度安裝。一種簡(jiǎn)單的方法是通過跟蹤誤差隨時(shí)間的變化(稱為學(xué)習(xí)曲線)。
 

  深度學(xué)習(xí)是一個(gè)極其豐富的領(lǐng)域,因此這里有太多要討論的內(nèi)容。實(shí)際上,scikit-learn是一個(gè)機(jī)器學(xué)習(xí)庫(kù),幾乎沒有深度學(xué)習(xí)能力(與PyTorch 或 TensorFlow相比 )。
 

  決策樹
 

  決策樹 是建立關(guān)系模型的簡(jiǎn)單快捷方法。從根本上講,它們是 決策樹 ,有助于確定數(shù)據(jù)點(diǎn)所屬的類或標(biāo)簽。決策樹也可以用于回歸問題。盡管很簡(jiǎn)單,但是為了避免過度擬合,必須選擇幾個(gè)超參數(shù)。通常,所有這些都與樹的深度和要做出的決策數(shù)量有關(guān)。
 

  K均值
 

  我們可以 使用 k-means將未標(biāo)記的數(shù)據(jù)分組為幾個(gè)群集。通常,存在的簇?cái)?shù)是選擇的超參數(shù)。
 

  K-means通過嘗試優(yōu)化(減少)稱為慣性的某些標(biāo)準(zhǔn)(即函數(shù))而起作用??梢哉J(rèn)為是試圖最小化一組 質(zhì)心到 每個(gè)數(shù)據(jù)點(diǎn)的距離。
 

  4.5)合奏
 

  隨機(jī)森林
 

  隨機(jī)森林是在數(shù)據(jù)的隨機(jī)子集上訓(xùn)練的多個(gè)決策樹的組合(引導(dǎo))。此過程稱為裝袋,可讓隨機(jī)森林對(duì)復(fù)雜數(shù)據(jù)獲得良好的擬合度(低偏差和低方差)。
 

  其背后的理由可以比作民主。
 

  對(duì)于 回歸 問題,我們對(duì)每個(gè)決策樹的輸出求平均,對(duì)于分類,我們選擇最受歡迎的決策樹 。這可能并不總是可行,但我們通常會(huì)假設(shè)會(huì)這樣做 (尤其是對(duì)于具有多列的大型數(shù)據(jù)集)。
 

  隨機(jī)森林的另一個(gè)優(yōu)點(diǎn)是,微不足道的功能不應(yīng)因?yàn)轭愃泼裰鞯囊龑?dǎo)過程而對(duì)性能產(chǎn)生負(fù)面影響!
 

  超參數(shù)選擇與決策樹的選擇相同,但決策樹的數(shù)量也是如此。由于上述原因,更多的樹木等于更少的過度擬合!
 

  請(qǐng)注意,隨機(jī)森林使用隨機(jī)子集替換行和列!
 

  4.6)梯度提升
 

  像AdaBoost或XGBoost這樣的集成模型 通過將一個(gè)模型堆疊在另一個(gè)模型上來工作。這里的假設(shè)是,每個(gè)連續(xù)的弱學(xué)習(xí)者都將糾正前一個(gè)學(xué)習(xí)者的缺陷(因此稱為提升)。因此,模型的組合應(yīng)該提供每個(gè)模型的優(yōu)點(diǎn)而沒有潛在的陷阱。
 

  迭代方法意味著先前模型的性能會(huì)影響當(dāng)前模型,而更好的模型將具有更高的優(yōu)先級(jí)。增強(qiáng)模型的性能略好于裝袋模型(也稱為隨機(jī)森林),但過擬合的可能性也更高。scikit-learn庫(kù)為分類 和 回歸提供AdaBoost 。
 

第五章-生產(chǎn)
 

  這是該過程的最后但可能是最重要的部分。我們已經(jīng)完成了所有這些工作,因此我們需要加倍努力,創(chuàng)造出令人印象深刻的東西!
 

  有多種選擇。 Streamlit 是面向數(shù)據(jù)的網(wǎng)站的令人興奮的選擇,并且Kotlin,Swift和Dart等工具可用于Android / IOS開發(fā)。帶有VueJS之類的框架的JavaScript也可以用于提高靈活性。
 

  在嘗試了大多數(shù)方法之后,老實(shí)說,我建議您堅(jiān)持使用Streamlit,因?yàn)樗绕渌椒ㄈ菀椎枚?
 

  在這里重要的是從愿景開始(越簡(jiǎn)單越好),然后嘗試找出哪些部分最重要。然后嘗試專門處理這些問題。繼續(xù)直到完成!對(duì)于網(wǎng)站,將需要像Heroku這樣的托管服務(wù) ,因此世界其他地方可以看到我們所有辛勤工作的驚人最終產(chǎn)品。
 

  即使以上所有選項(xiàng)都不適合這種情況,但也必須包含一份報(bào)告或一篇文章,其中包括我們已完成的工作,所學(xué)的內(nèi)容以及任何建議或教訓(xùn),以及記錄良好的GitHub存儲(chǔ)庫(kù)! 確保自述文件是最新的。



 

預(yù)約申請(qǐng)免費(fèi)試聽課

填寫下面表單即可預(yù)約申請(qǐng)免費(fèi)試聽!怕錢不夠?可先就業(yè)掙錢后再付學(xué)費(fèi)! 怕學(xué)不會(huì)?助教全程陪讀,隨時(shí)解惑!擔(dān)心就業(yè)?一地學(xué)習(xí),可推薦就業(yè)!

?2007-2021/北京漫動(dòng)者教育科技有限公司版權(quán)所有
備案號(hào):京ICP備12034770號(hào)

?2007-2022/ 5wd995.cn 北京漫動(dòng)者數(shù)字科技有限公司 備案號(hào): 京ICP備12034770號(hào) 監(jiān)督電話:010-53672995 郵箱:bjaaa@aaaedu.cc

京公網(wǎng)安備 11010802035704號(hào)

網(wǎng)站地圖