5 個數(shù)據(jù)科學(xué)項目——數(shù)據(jù)科學(xué)實踐項目

      網(wǎng)友投稿 1081 2025-04-01

      隨著人工智能的爆發(fā)式增長,公司急切地希望聘請熟練的數(shù)據(jù)科學(xué)家來發(fā)展他們的業(yè)務(wù)。除了獲得數(shù)據(jù)科學(xué)認證外,簡歷上有幾個數(shù)據(jù)科學(xué)項目總是好的。擁有理論知識是遠遠不夠的。因此,在此博客中,您將學(xué)習(xí)如何實際使用數(shù)據(jù)科學(xué)方法來解決實際問題。

      這是本文將涵蓋的主題列表?博客:

      使用數(shù)據(jù)科學(xué)解決問題的基本方法

      數(shù)據(jù)科學(xué)的實際應(yīng)用

      數(shù)據(jù)科學(xué)項目

      數(shù)據(jù)科學(xué)項目生命周期

      有了正確的數(shù)據(jù),數(shù)據(jù)科學(xué)可用于解決從欺詐檢測和智能農(nóng)業(yè)到預(yù)測氣候變化和心臟病等問題。話雖如此,數(shù)據(jù)不足以解決問題,您需要一種方法或方法來為您提供最準確的結(jié)果。這給我們帶來了一個問題:

      你如何解決數(shù)據(jù)科學(xué)問題?

      數(shù)據(jù)科學(xué)中的問題陳述可以通過以下步驟解決:

      定義問題陳述/業(yè)務(wù)需求

      數(shù)據(jù)采集

      數(shù)據(jù)清洗

      數(shù)據(jù)探索與分析

      數(shù)據(jù)建模

      部署和優(yōu)化

      數(shù)據(jù)科學(xué)項目生命周期 – 數(shù)據(jù)科學(xué)項目

      讓我們詳細看看這些步驟中的每一個:

      步驟 1:定義問題陳述

      在開始數(shù)據(jù)科學(xué)項目之前,您必須先定義要解決的問題。在這個階段,您應(yīng)該清楚項目的目標(biāo)。

      第 2 步:數(shù)據(jù)收集

      顧名思義,在這個階段,您必須獲取解決問題所需的所有數(shù)據(jù)。收集數(shù)據(jù)并不容易,因為大多數(shù)時候您不會在數(shù)據(jù)庫中找到等待您的數(shù)據(jù)。相反,您必須出去,做一些研究并收集數(shù)據(jù)或從互聯(lián)網(wǎng)上獲取數(shù)據(jù)。

      第 3 步:數(shù)據(jù)清理

      如果你問數(shù)據(jù)科學(xué)家他們最不喜歡的數(shù)據(jù)科學(xué)過程是什么,他們很可能會告訴你它是數(shù)據(jù)清理。數(shù)據(jù)清洗是去除冗余、缺失、重復(fù)和不必要的數(shù)據(jù)的過程。這個階段被認為是數(shù)據(jù)科學(xué)中最耗時的階段之一。然而,為了防止錯誤的預(yù)測,消除數(shù)據(jù)中的任何不一致是很重要的。

      第 4 步:數(shù)據(jù)分析和探索

      一旦你完成了數(shù)據(jù)的清理,是時候把內(nèi)在的夏洛克福爾摩斯弄出來了。在數(shù)據(jù)科學(xué)生命周期的這個階段,您必須檢測數(shù)據(jù)中的模式和趨勢。您可以在此處檢索有用的見解并研究數(shù)據(jù)的行為。在此階段結(jié)束時,您必須開始對您的數(shù)據(jù)和您正在解決的問題形成假設(shè)。

      第 5 步:數(shù)據(jù)建模

      這個階段是關(guān)于構(gòu)建一個最能解決你的問題的模型。模型可以是使用數(shù)據(jù)進行訓(xùn)練和測試的機器學(xué)習(xí)算法。這個階段總是從一個叫做數(shù)據(jù)拼接的過程開始,在這個過程中你將整個數(shù)據(jù)集分成兩個比例。一個用于訓(xùn)練模型(訓(xùn)練數(shù)據(jù)集),另一個用于測試模型的效率(測試數(shù)據(jù)集)。

      然后使用訓(xùn)練數(shù)據(jù)集構(gòu)建模型,最后使用測試數(shù)據(jù)集評估模型。

      第 6 步:優(yōu)化和部署:

      這是數(shù)據(jù)科學(xué)生命周期的最后階段。在這個階段,你必須嘗試提高數(shù)據(jù)模型的效率,讓它做出更準確的預(yù)測。最終目標(biāo)是將模型部署到生產(chǎn)或類似生產(chǎn)的環(huán)境中,以供最終用戶接受。用戶必須驗證模型的性能,如果模型有任何問題,則必須在此階段進行修復(fù)。

      既然你知道問題是如何發(fā)生的?使用數(shù)據(jù)科學(xué)解決,讓我們進入有趣的部分。在接下來的部分中,我將為您提供五個高級數(shù)據(jù)科學(xué)項目,這些項目可以讓您在頂級 IT 公司工作。

      R中的數(shù)據(jù)科學(xué)

      在我們開始編碼之前,這里有一個簡短的免責(zé)聲明:

      我將使用 R 語言來運行整個數(shù)據(jù)科學(xué)工作流,因為R 是一種統(tǒng)計語言,它有 8000 多個包,讓我們的生活更輕松。

      1994 年人口普查收入數(shù)據(jù)的分類

      問題陳述:構(gòu)建一個模型,該模型將根據(jù)有關(guān)個人的可用數(shù)據(jù)預(yù)測美國任何個人的收入是大于還是小于 50,000 美元。

      數(shù)據(jù)集描述:該人口普查收入數(shù)據(jù)集由 Barry Becker 在 1994 年收集并提供給公共網(wǎng)站http://archive.ics.uci.edu/ml/datasets/Census+Income。該數(shù)據(jù)集將幫助您了解一個人的收入如何根據(jù)教育背景、職業(yè)、婚姻狀況、地理、年齡、每周工作小時數(shù)等各種因素而變化。

      以下是用于預(yù)測個人收入是否超過 50,000 美元的自變量或預(yù)測變量列表:

      年齡

      工薪階層

      最終重量

      教育

      Education-num(受教育年限)

      婚姻狀況

      職業(yè)

      關(guān)系

      種族

      性別

      資本收益

      資本損失

      每周幾小時

      祖國

      因變量是代表收入水平的“收入水平”。這是一個分類變量,因此它只能取兩個值:

      <=50k

      >=50k

      現(xiàn)在我們已經(jīng)定義了我們的目標(biāo)并收集了數(shù)據(jù),是時候開始分析了。

      第 1 步:導(dǎo)入數(shù)據(jù)

      幸運的是,我們在網(wǎng)上找到了一個數(shù)據(jù)集,所以我們要做的就是將數(shù)據(jù)集導(dǎo)入到我們的 R 環(huán)境中,如下所示:

      #Downloading train and test data trainFile = "adult.data"; testFile = "adult.test" if (!file.exists (trainFile)) download.file (url = "

      現(xiàn)在為了研究我們數(shù)據(jù)集的結(jié)構(gòu),我們調(diào)用了 str() 方法。這為我們提供了數(shù)據(jù)集中存在的所有預(yù)測變量的描述性摘要:

      #Display structure of the data str (training) > str (training) 'data.frame': 32561 obs. of 15 variables: $ age : int 39 50 38 53 28 37 49 52 31 42 ... $ workclass : Factor w/ 8 levels "Federal-gov",..: 7 6 4 4 4 4 4 6 4 4 ... $ fnlwgt : int 77516 83311 215646 234721 338409 284582 160187 209642 45781 159449 ... $ education : Factor w/ 16 levels "10th","11th",..: 10 10 12 2 10 13 7 12 13 10 ... $ educationnum : int 13 13 9 7 13 14 5 9 14 13 ... $ maritalstatus: Factor w/ 7 levels "Divorced","Married-AF-spouse",..: 5 3 1 3 3 3 4 3 5 3 ... $ occupation : Factor w/ 14 levels "Adm-clerical",..: 1 4 6 6 10 4 8 4 10 4 ... $ relationship : Factor w/ 6 levels "Husband","Not-in-family",..: 2 1 2 1 6 6 2 1 2 1 ... $ race : Factor w/ 5 levels "Amer-Indian-Eskimo",..: 5 5 5 3 3 5 3 5 5 5 ... $ sex : Factor w/ 2 levels "Female","Male": 2 2 2 2 1 1 1 2 1 2 ... $ capitalgain : int 2174 0 0 0 0 0 0 0 14084 5178 ... $ capitalloss : int 0 0 0 0 0 0 0 0 0 0 ... $ hoursperweek : int 40 13 40 40 40 40 16 45 50 40 ... $ nativecountry: Factor w/ 41 levels "Cambodia","Canada",..: 39 39 39 39 5 39 23 39 39 39 ... $ incomelevel : Factor w/ 2 levels "<=50K",">50K": 1 1 1 1 1 1 1 2 2 2 ...

      因此,在導(dǎo)入數(shù)據(jù)并將其轉(zhuǎn)換為可讀格式后,我們將進入數(shù)據(jù)處理中的下一個關(guān)鍵步驟,即數(shù)據(jù)清理。

      第 2 步:數(shù)據(jù)清理

      數(shù)據(jù)清理階段被認為是數(shù)據(jù)科學(xué)中最耗時的任務(wù)之一。此階段包括刪除 NA 值、刪除冗余變量和數(shù)據(jù)中的任何不一致。

      我們將通過檢查我們的數(shù)據(jù)觀察是否有任何缺失值來開始數(shù)據(jù)清理:

      > table (complete.cases (training)) FALSE TRUE 2399 30162

      上面的代碼片段表明 2399 個樣本案例具有 NA 值。為了解決這個問題,讓我們查看所有變量的摘要并分析哪些變量具有最多的空值。我們必須擺脫 NA 值的原因是它們會導(dǎo)致錯誤的預(yù)測,從而降低我們模型的準確性。

      > summary (training [!complete.cases(training),]) age workclass fnlwgt education educationnum Min. :17.00 Private : 410 Min. : 12285 HS-grad :661 Min. : 1.00 1st Qu.:22.00 Self-emp-inc : 42 1st Qu.:121804 Some-college:613 1st Qu.: 9.00 Median :36.00 Self-emp-not-inc: 42 Median :177906 Bachelors :311 Median :10.00 Mean :40.39 Local-gov : 26 Mean :189584 11th :127 Mean : 9.57 3rd Qu.:58.00 State-gov : 19 3rd Qu.:232669 10th :113 3rd Qu.:11.00 Max. :90.00 (Other) : 24 Max. :981628 Masters : 96 Max. :16.00 NA's :1836 (Other) :478 maritalstatus occupation relationship race Divorced :229 Prof-specialty : 102 Husband :730 Amer-Indian-Eskimo: 25 Married-AF-spouse : 2 Other-service : 83 Not-in-family :579 Asian-Pac-Islander: 144 Married-civ-spouse :911 Exec-managerial: 74 Other-relative: 92 Black : 307 Married-spouse-absent: 48 Craft-repair : 69 Own-child :602 Other : 40 Never-married :957 Sales : 66 Unmarried :234 White :1883 Separated : 86 (Other) : 162 Wife :162 Widowed :166 NA's :1843 sex capitalgain capitalloss hoursperweek nativecountry Female: 989 Min. : 0.0 Min. : 0.00 Min. : 1.00 United-States Median : 0.0 Median : 0.00 Median :40.00 Canada Mean : 897.1 Mean : 73.87 Mean :34.23 Philippines 3rd Qu.: 0.0 3rd Qu.: 0.00 3rd Qu.:40.00 Germany Max. :99999.0 Max. :4356.00 Max. :99.00 (Other) NA's : 583

      從上面的總結(jié)中可以看出,三個變量具有大量的 NA 值:

      工人階級 – 1836

      職業(yè) – 1843

      原住民 – 583

      這三個變量必須清除,因為它們是預(yù)測個人收入水平的重要變量。

      #Removing NAs TrainSet = training [!is.na (training$workclass) & !is.na (training$occupation), ] TrainSet = TrainSet [!is.na (TrainSet$nativecountry), ]

      一旦我們擺脫了 NA 值,下一步就是擺脫任何對預(yù)測結(jié)果不重要的不必要變量。擺脫這些變量很重要,因為它們只會增加模型的復(fù)雜性,而不會提高其效率。

      其中一個變量是“fnlwgt”變量,它表示通過計算人口的任何特定社會經(jīng)濟特征的“加權(quán)計數(shù)”從 CPS 得出的人口總數(shù)。

      此變量已從我們的數(shù)據(jù)集中刪除,因為它無助于預(yù)測我們的結(jié)果變量:

      #Removing unnecessary variables TrainSet$fnlwgt = NULL

      這就是數(shù)據(jù)清理的全部內(nèi)容,我們的下一步是數(shù)據(jù)探索。

      第 3 步:數(shù)據(jù)探索

      數(shù)據(jù)探索涉及分析每個特征變量以檢查變量對于構(gòu)建模型是否重要。

      探索年齡變量

      #Data Exploration #Exploring the age variable > summary (TrainSet$age) Min. 1st Qu. Median Mean 3rd Qu. Max. 17.00 28.00 37.00 38.44 47.00 90.00 #Boxplot for age variable boxplot (age ~ incomelevel, data = TrainSet, main = "Income levels based on the Age of an individual", xlab = "Income Level", ylab = "Age", col = "salmon")

      箱線圖 – 數(shù)據(jù)科學(xué)項目

      #Histogram for age variable incomeBelow50K = (TrainSet$incomelevel == "<=50K") xlimit = c (min (TrainSet$age), max (TrainSet$age)) ylimit = c (0, 1600) hist1 = qplot (age, data = TrainSet[incomeBelow50K,], margins = TRUE, binwidth = 2, xlim = xlimit, ylim = ylimit, colour = incomelevel) hist2 = qplot (age, data = TrainSet[!incomeBelow50K,], margins = TRUE, binwidth = 2, xlim = xlimit, ylim = ylimit, colour = incomelevel) grid.arrange (hist1, hist2, nrow = 2)

      直方圖 – 數(shù)據(jù)科學(xué)項目

      上圖顯示年齡變量隨收入水平而變化,因此它是一個強大的預(yù)測變量。

      探索 'educationnum' 變量

      該變量表示個人受教育的年數(shù)。讓我們看看“educationnum”變量如何隨收入水平變化:

      > summary (TrainSet$educationnum) Min. 1st Qu. Median Mean 3rd Qu. Max. 1.00 9.00 10.00 10.12 13.00 16.00 #Boxplot for education-num variable boxplot (educationnum ~ incomelevel, data = TrainSet, main = "Years of Education distribution for different income levels", xlab = "Income Levels", ylab = "Years of Education", col = "green")

      數(shù)據(jù)探索 (educationnum) – 數(shù)據(jù)科學(xué)項目

      上圖描述了 'educationnum' 變量隨著收入水平 <=50k 和 >50k 而變化,從而證明它是預(yù)測結(jié)果的重要變量。

      探索資本收益和資本損失變量

      在研究了每個收入水平的資本收益和資本損失變量的匯總后,很明顯它們的均值差異很大,因此表明它們是預(yù)測個人收入水平的合適變量。

      > summary (TrainSet[ TrainSet$incomelevel == "<=50K", + c("capitalgain", "capitalloss")]) capitalgain capitalloss Min. : 0.0 Min. : 0.00 1st Qu.: 0.0 1st Qu.: 0.00 Median : 0.0 Median : 0.00 Mean : 148.9 Mean : 53.45 3rd Qu.: 0.0 3rd Qu.: 0.00 Max. :41310.0 Max. :4356.00

      探索小時/周變量

      類似地,評估 'hoursperweek' 變量以檢查它是否是一個重要的預(yù)測變量。

      #Evaluate hours/week variable > summary (TrainSet$hoursperweek) Min. 1st Qu. Median Mean 3rd Qu. Max. 1.00 40.00 40.00 40.93 45.00 99.00 boxplot (hoursperweek ~ incomelevel, data = TrainSet, main = "Hours Per Week distribution for different income levels", xlab = "Income Levels", ylab = "Hours Per Week", col = "salmon")

      數(shù)據(jù)探索(每周小時數(shù)) – 數(shù)據(jù)科學(xué)項目

      箱線圖顯示了不同收入水平的明顯變化,這使其成為預(yù)測結(jié)果的重要變量。

      同樣,我們也將評估分類變量。在下面的部分中,我為每個變量創(chuàng)建了 qplots,在評估這些圖之后,很明顯這些變量對于預(yù)測個人的收入水平至關(guān)重要。

      探索工人階級變量

      #Evaluating work-class variable qplot (incomelevel, data = TrainSet, fill = workclass) + facet_grid (. ~ workclass)

      數(shù)據(jù)探索(工作班)——數(shù)據(jù)科學(xué)項目

      #Evaluating occupation variable qplot (incomelevel, data = TrainSet, fill = occupation) + facet_grid (. ~ occupation)

      數(shù)據(jù)探索(職業(yè)) – 數(shù)據(jù)科學(xué)項目

      #Evaluating marital-status variable qplot (incomelevel, data = TrainSet, fill = maritalstatus) + facet_grid (. ~ maritalstatus)

      數(shù)據(jù)探索 (martialstatus) – 數(shù)據(jù)科學(xué)項目

      #Evaluating relationship variable qplot (incomelevel, data = TrainSet, fill = relationship) + facet_grid (. ~ relationship)

      數(shù)據(jù)探索(關(guān)系) – 數(shù)據(jù)科學(xué)項目

      所有這些圖表都表明,這些預(yù)測變量集對于構(gòu)建我們的預(yù)測模型很重要。

      第 4 步:構(gòu)建模型

      因此,在評估了我們所有的預(yù)測變量之后,終于到了執(zhí)行預(yù)測分析的時候了。在此階段,我們將構(gòu)建一個預(yù)測模型,該模型將根據(jù)我們在上一節(jié)中評估的預(yù)測變量來預(yù)測個人收入是否超過 50,000 美元。

      為了構(gòu)建這個模型,我使用了 boosting 算法,因為我們必須將一個人分為兩類,即:

      收入水平 <= 50,000 美元

      收入水平 > 50,000 美元

      #Building the model set.seed (32323) trCtrl = trainControl(method = "cv", number = 10) boostFit = train (incomelevel ~ age + workclass + education + educationnum + maritalstatus + occupation + relationship + race + capitalgain + capitalloss + hoursperweek + nativecountry, trControl = trCtrl, method = "gbm", data = TrainSet, verbose = FALSE)

      由于我們使用的是集成分類算法,因此我還實施了交叉驗證技術(shù)來防止模型過度擬合。

      第 5 步:檢查模型的準確性

      為了評估模型的準確性,我們將使用混淆矩陣:

      #Checking the accuracy of the model > confusionMatrix (TrainSet$incomelevel, predict (boostFit, TrainSet)) Confusion Matrix and Statistics Reference Prediction <=50K >50K <=50K 21404 1250 >50K 2927 4581 Accuracy : 0.8615 95% CI : (0.8576, 0.8654) No Information Rate : 0.8067 P-Value [Acc > NIR] : < 2.2e-16 Kappa : 0.5998 Mcnemar's Test P-Value : < 2.2e-16 Sensitivity : 0.8797 Specificity : 0.7856 Pos Pred Value : 0.9448 Neg Pred Value : 0.6101 Prevalence : 0.8067 Detection Rate : 0.7096 Detection Prevalence : 0.7511 Balanced Accuracy : 0.8327 'Positive' Class : <=50K

      輸出顯示,我們的模型以大約 86% 的準確度計算了個人的收入水平,這是一個很好的數(shù)字。

      到目前為止,我們使用訓(xùn)練數(shù)據(jù)集來構(gòu)建模型,現(xiàn)在是使用測試數(shù)據(jù)集來驗證模型的時候了。

      步驟 5:加載和評估測試數(shù)據(jù)集

      就像我們清理訓(xùn)練數(shù)據(jù)集的方式一樣,我們的測試數(shù)據(jù)也必須以這樣的方式準備,即它沒有任何空值或不必要的預(yù)測變量,只有這樣我們才能使用測試數(shù)據(jù)來驗證我們的模型。

      首先加載測試數(shù)據(jù)集:

      #Load the testing data set testing = read.table (testFile, header = FALSE, sep = ",", strip.white = TRUE, col.names = colNames, na.strings = "?", fill = TRUE, stringsAsFactors = TRUE)

      接下來,我們正在研究數(shù)據(jù)集的結(jié)構(gòu)。

      #Display structure of the data > str (testing) 'data.frame': 16282 obs. of 15 variables: $ age : Factor w/ 74 levels "|1x3 Cross validator",..: 1 10 23 13 29 3 19 14 48 9 ... $ workclass : Factor w/ 9 levels "","Federal-gov",..: 1 5 5 3 5 NA 5 NA 7 5 ... $ fnlwgt : int NA 226802 89814 336951 160323 103497 198693 227026 104626 369667 ... $ education : Factor w/ 17 levels "","10th","11th",..: 1 3 13 9 17 17 2 13 16 17 ... $ educationnum : int NA 7 9 12 10 10 6 9 15 10 ... $ maritalstatus: Factor w/ 8 levels "","Divorced",..: 1 6 4 4 4 6 6 6 4 6 ... $ occupation : Factor w/ 15 levels "","Adm-clerical",..: 1 8 6 12 8 NA 9 NA 11 9 ... $ relationship : Factor w/ 7 levels "","Husband","Not-in-family",..: 1 5 2 2 2 5 3 6 2 6 ... $ race : Factor w/ 6 levels "","Amer-Indian-Eskimo",..: 1 4 6 6 4 6 6 4 6 6 ... $ sex : Factor w/ 3 levels "","Female","Male": 1 3 3 3 3 2 3 3 3 2 ... $ capitalgain : int NA 0 0 0 7688 0 0 0 3103 0 ... $ capitalloss : int NA 0 0 0 0 0 0 0 0 0 ... $ hoursperweek : int NA 40 50 40 40 30 30 40 32 40 ... $ nativecountry: Factor w/ 41 levels "","Cambodia",..: 1 39 39 39 39 39 39 39 39 39 ... $ incomelevel : Factor w/ 3 levels "","<=50K.",">50K.": 1 2 2 3 3 2 2 2 3 2 ...

      在下面的代碼片段中,我們正在尋找沒有任何空數(shù)據(jù)或缺失數(shù)據(jù)的完整觀察。

      > table (complete.cases (testing)) FALSE TRUE 1222 15060 > summary (testing [!complete.cases(testing),]) age workclass fnlwgt education educationnum 20 : 73 Private :189 Min. : 13862 Some-college:366 Min. : 1.000 19 : 71 Self-emp-not-inc: 24 1st Qu.: 116834 HS-grad :340 1st Qu.: 9.000 18 : 64 State-gov : 16 Median : 174274 Bachelors :144 Median :10.000 21 : 62 Local-gov : 10 Mean : 187207 11th : 66 Mean : 9.581 22 : 53 Federal-gov : 9 3rd Qu.: 234791 10th : 53 3rd Qu.:10.000 17 : 35 (Other) : 11 Max. :1024535 Masters : 47 Max. :16.000 (Other):864 NA's :963 NA's :1 (Other) :206 NA's :1 maritalstatus occupation relationship race Never-married :562 Prof-specialty : 62 : 1 : 1 Married-civ-spouse :413 Other-service : 32 Husband :320 Amer-Indian-Eskimo: 10 Divorced :107 Sales : 30 Not-in-family :302 Asian-Pac-Islander: 72 Widowed : 75 Exec-managerial: 28 Other-relative: 65 Black :150 Separated : 33 Craft-repair : 23 Own-child :353 Other : 13 Married-spouse-absent: 28 (Other) : 81 Unmarried :103 White :976 (Other) : 4 NA's :966 Wife : 78 sex capitalgain capitalloss hoursperweek nativecountry : 1 Min. : 0.0 Min. : 0.00 Min. : 1.00 UnitedStates Female:508 1st Qu.: 0.0 1st Qu.: 0.00 1st Qu.:20.00 Mexico Mean : 608.3 Mean : 73.81 Mean :33.49 South 3rd Qu.: 0.0 3rd Qu.: 0.00 3rd Qu.:40.00 England Max. :99999.0 Max. :2603.00 Max. :99.00 (Other) NA's :1 NA's :1 NA's :1 NA's

      從總結(jié)中可以清楚地看出,我們在 'workclass'、'occupation' 和 'nativecountry' 變量中有許多 NA 值,所以讓我們擺脫這些變量。

      #Removing NAs TestSet = testing [!is.na (testing$workclass) & !is.na (testing$occupation), ] TestSet = TestSet [!is.na (TestSet$nativecountry), ] #Removing unnecessary variables TestSet$fnlwgt = NULL

      第 6 步:驗證模型

      將測試數(shù)據(jù)集應(yīng)用于預(yù)測模型以驗證模型的效率。以下代碼片段顯示了這是如何完成的:

      #Testing model TestSet$predicted = predict (boostFit, TestSet) table(TestSet$incomelevel, TestSet$predicted) actuals_preds <- data.frame(cbind(actuals=TestSet$incomelevel, predicted=TestSet$predicted)) # make actuals_predicteds dataframe. correlation_accuracy <- cor(actuals_preds) head(actuals_preds)

      該表用于將預(yù)測值與個人的實際收入水平進行比較。通過在模型中引入一些變化或使用替代算法,可以進一步改進該模型。

      因此,我們只是從頭開始執(zhí)行了整個數(shù)據(jù)科學(xué)項目。

      在下面的部分中,我編譯了一組項目,這些項目將幫助您獲得數(shù)據(jù)清理、統(tǒng)計分析、數(shù)據(jù)建模和數(shù)據(jù)方面的經(jīng)驗?可視化。

      將此視為您的家庭作業(yè)。

      簡歷數(shù)據(jù)科學(xué)項目

      沃爾瑪銷售預(yù)測

      數(shù)據(jù)科學(xué)在預(yù)測零售業(yè)的銷售和風(fēng)險方面發(fā)揮著巨大作用。大多數(shù)領(lǐng)先的零售店都采用數(shù)據(jù)科學(xué)來跟蹤客戶需求并做出更好的業(yè)務(wù)決策。沃爾瑪就是這樣的零售商之一。

      問題陳述:分析沃爾瑪銷售數(shù)據(jù)集,以預(yù)測其每個商店的部門銷售額。

      數(shù)據(jù)集說明:本項目使用的數(shù)據(jù)集包含歷史訓(xùn)練數(shù)據(jù),涵蓋2010-02-05至2012-11-01的銷售明細。為了分析這個問題,使用了以下預(yù)測變量:

      商店 - 商店編號

      Dept——部門編號

      日期——周

      CPI——消費者價格指數(shù)

      Weekly_Sales – 指定商店中指定部門的銷售額

      IsHoliday – 該周是否為特殊假日周

      通過研究這些預(yù)測變量對響應(yīng)變量的依賴性,您可以預(yù)測或預(yù)測未來幾個月的銷售額。

      邏輯:

      導(dǎo)入數(shù)據(jù)集:本項目所需的數(shù)據(jù)集可以從Kaggle下載。

      數(shù)據(jù)清理:在此階段,您必須確保消除所有不一致,例如缺失值和任何冗余變量。

      數(shù)據(jù)探索:在此階段,您可以繪制箱線圖和 qplots 以了解每個預(yù)測變量的顯著性。請參閱人口普查收入項目以了解如何使用圖表來研究每個變量的重要性。

      數(shù)據(jù)建模:對于這個特定的問題陳述,由于結(jié)果是一個連續(xù)變量(銷售數(shù)量),因此構(gòu)建回歸模型是合理的。線性回歸算法可用于解決此類問題,因為它專門用于預(yù)測連續(xù)因變量。

      驗證模型:在這個階段,您應(yīng)該使用測試數(shù)據(jù)集評估數(shù)據(jù)模型的效率,最后使用混淆矩陣計算模型的準確性。

      芝加哥犯罪分析

      隨著芝加哥發(fā)生的犯罪數(shù)量增加,執(zhí)法機構(gòu)正在盡最大努力了解此類行為背后的原因。像這樣的分析不僅可以幫助了解這些犯罪背后的原因,而且還可以防止進一步的犯罪。

      問題陳述:分析和探索芝加哥犯罪數(shù)據(jù)集,以了解有助于預(yù)測此類重罪未來發(fā)生的趨勢和模式。

      數(shù)據(jù)集描述:該項目使用的數(shù)據(jù)集包含 2014 年 1 月 1 日至 2016 年 10 月 24 日芝加哥市發(fā)生的所有犯罪事件。

      對于此分析,數(shù)據(jù)集包含許多預(yù)測變量,例如:

      ID – 記錄的標(biāo)識符

      案件編號 – 芝加哥警察鏈 RD 編號

      日期 - 事件發(fā)生日期

      描述 – IUCR 代碼的輔助描述

      位置 - 發(fā)生事件的位置

      邏輯:

      與任何其他數(shù)據(jù)科學(xué)項目一樣,遵循以下描述的一系列步驟:

      導(dǎo)入數(shù)據(jù)集:本項目所需的數(shù)據(jù)集可以從Kaggle下載。

      5 個數(shù)據(jù)科學(xué)項目——數(shù)據(jù)科學(xué)實踐項目

      數(shù)據(jù)清理:在此階段,您必須確保消除所有不一致,例如缺失值和任何冗余變量。

      數(shù)據(jù)探索:您可以通過將犯罪的發(fā)生轉(zhuǎn)化為城市地理地圖上的情節(jié)來開始此階段。以圖形方式研究每個預(yù)測變量將幫助您了解哪些變量對于構(gòu)建模型至關(guān)重要。

      數(shù)據(jù)建模:對于這個特定的問題陳述,由于犯罪的性質(zhì)各不相同,因此構(gòu)建聚類模型是合理的。K-means 是最適合這種分析的算法,因為使用 k-means 很容易構(gòu)建集群。

      分析模式:由于此問題陳述需要您繪制有關(guān)犯罪的模式和見解,因此此步驟主要涉及創(chuàng)建報告并從數(shù)據(jù)模型中得出結(jié)論。

      驗證模型:在這個階段,您應(yīng)該使用測試數(shù)據(jù)集評估數(shù)據(jù)模型的效率,最后使用混淆矩陣計算模型的準確性。

      電影推薦引擎

      每個成功的數(shù)據(jù)科學(xué)家在他的職業(yè)生涯中都至少構(gòu)建了一個推薦引擎。個性化推薦引擎被視為數(shù)據(jù)科學(xué)項目的圣杯,這就是我在博客中添加這個項目的原因。

      問題陳述:分析 Movie Lens 數(shù)據(jù)集以了解有助于向用戶推薦新電影的趨勢和模式。

      數(shù)據(jù)集描述:本項目使用的數(shù)據(jù)集由明尼蘇達大學(xué)的 GroupLens 研究項目收集。

      數(shù)據(jù)集由以下預(yù)測變量組成:

      943 位用戶對 1682 部電影的 100k 評分。

      每個用戶至少對 20 部電影進行過評分

      用戶的詳細信息,如年齡、性別、職業(yè)、地理等。

      通過研究這些預(yù)測變量,可以建立一個模型來向用戶推薦電影。

      邏輯:

      導(dǎo)入數(shù)據(jù)集:本項目所需的數(shù)據(jù)集可以從Kaggle下載。

      數(shù)據(jù)清理:在此階段進行必要的清理和轉(zhuǎn)換,以便模型可以預(yù)測準確的結(jié)果。

      數(shù)據(jù)探索:在此階段,您可以評估電影類型如何影響觀眾的收視率。同樣,您可以根據(jù)用戶的年齡、性別和職業(yè)來評估他的電影選擇。以圖形方式研究每個預(yù)測變量將幫助您了解哪些變量對于構(gòu)建模型至關(guān)重要。

      數(shù)據(jù)建模:對于這個問題陳述,您可以使用 k-means 聚類算法,根據(jù)相似的電影觀看模式對用戶進行聚類。您還可以使用關(guān)聯(lián)規(guī)則挖掘來研究用戶與其電影選擇之間的相關(guān)性。

      驗證模型:在這個階段,您應(yīng)該使用測試數(shù)據(jù)集評估數(shù)據(jù)模型的效率,最后使用混淆矩陣計算模型的準確性。

      文本挖掘

      在你的簡歷中加入文本挖掘項目肯定會增加你被聘為數(shù)據(jù)科學(xué)家的機會。它涉及高級分析和數(shù)據(jù)挖掘,這將使您成為熟練的數(shù)據(jù)科學(xué)家。文本挖掘的一個流行應(yīng)用是情緒分析,它在社交媒體監(jiān)控中非常有用,因為它有助于獲得對某些主題的更廣泛公眾意見的概覽。

      問題陳述:使用自然語言處理技術(shù)對一組文檔進行預(yù)處理、文本分析、文本挖掘和可視化。

      數(shù)據(jù)集描述:該數(shù)據(jù)集包含來自原始三部曲劇集的著名星球大戰(zhàn)系列的腳本,即 IV、V 和 VI。

      邏輯:

      導(dǎo)入數(shù)據(jù)集:對于這個項目,你可以在Kaggle上找到數(shù)據(jù)集。

      預(yù)處理:在文本挖掘過程的這個階段,您必須去除不一致性,例如停用詞、標(biāo)點符號、空格等。還可以執(zhí)行詞形還原和數(shù)據(jù)詞干等過程以進行更好的分析。

      構(gòu)建文檔術(shù)語矩陣 (DTM):此步驟涉及創(chuàng)建文檔術(shù)語矩陣 (DTM)。它是一個列出文檔中單詞出現(xiàn)頻率的矩陣。在這個矩陣上執(zhí)行文本分析。

      文本分析:文本分析涉及分析文檔中每個單詞的詞頻并找出單詞之間的相關(guān)性以得出結(jié)論。

      文本可視化:使用直方圖和詞云來表示重要詞是文本挖掘的重要步驟之一,因為它可以幫助您理解文檔中最重要的詞。

      所以這些是一些幫助您入門的數(shù)據(jù)科學(xué)項目。我已經(jīng)為您提供了解決每個用例的藍圖,您只需按照步驟操作即可。如果您想嘗試并做自己的事情,請不要猶豫。

      另外,不要忘記在評論部分分享您的實現(xiàn),我很想知道您的解決方案如何。

      既然您知道如何使用數(shù)據(jù)科學(xué)解決現(xiàn)實世界的問題,我相信您很想了解更多信息。以下是可幫助您入門的博客列表:

      面向數(shù)據(jù)科學(xué)的 R 綜合指南

      數(shù)據(jù)科學(xué)與機器學(xué)習(xí)——有什么區(qū)別?

      前 10 名數(shù)據(jù)科學(xué)應(yīng)用

      數(shù)據(jù)科學(xué)的數(shù)學(xué)和統(tǒng)計學(xué)完整指南

      有了這個,我們來到了這個博客的結(jié)尾。如果您對此主題有任何疑問,請在下方留言,我們會盡快回復(fù)您。

      請繼續(xù)關(guān)注有關(guān)趨勢技術(shù)的更多博客。

      數(shù)據(jù)挖掘

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:項目管理甘特圖進度計劃(甘特圖 項目管理生產(chǎn)進度)
      下一篇:表哥的自網(wǎng)站在哪,需要從網(wǎng)站中插入一段表格
      相關(guān)文章
      亚洲中文字幕在线第六区| 亚洲高清毛片一区二区| 亚洲国产精品毛片av不卡在线 | 亚洲国产精品尤物yw在线| 亚洲av最新在线观看网址| 亚洲精品无码少妇30P| 亚洲影院天堂中文av色| 亚洲mv国产精品mv日本mv| 亚洲欧洲日产韩国在线| 亚洲另类春色国产精品| 亚洲欧洲日本国产| 亚洲专区中文字幕| 亚洲无吗在线视频| 亚洲欧美日韩中文字幕一区二区三区| 中国亚洲呦女专区| 亚洲成a人片在线不卡一二三区| 亚洲精品无码中文久久字幕| 色婷婷亚洲一区二区三区| 337P日本欧洲亚洲大胆精品| vvvv99日韩精品亚洲| 亚洲日韩涩涩成人午夜私人影院| 亚洲伊人成无码综合网| 亚洲日韩aⅴ在线视频| 国产亚洲成av片在线观看 | 亚洲熟妇无码八V在线播放| 亚洲国产成人无码AV在线影院| 久久精品国产亚洲av瑜伽| 亚洲精品岛国片在线观看| 中文字幕亚洲无线码a| 亚洲va久久久噜噜噜久久狠狠| 久久精品国产亚洲| 亚洲日韩国产精品无码av| 亚洲综合色区中文字幕| 亚洲乱色伦图片区小说| 亚洲成a人片在线播放| 亚洲色精品aⅴ一区区三区| 亚洲AV无码一区二区二三区软件| 78成人精品电影在线播放日韩精品电影一区亚洲 | 亚洲一级毛片视频| 亚洲熟妇AV一区二区三区浪潮| 黑人粗长大战亚洲女2021国产精品成人免费视频 |