在上面的代碼片段中,我們下載了訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集。
如果您查看訓(xùn)練數(shù)據(jù),您會注意到預(yù)測變量沒有標(biāo)記。因此,在下面的代碼片段中,我為每個預(yù)測變量分配了變量名稱,為了使數(shù)據(jù)更具可讀性,我去掉了不必要的空格。
#Assigning column names colNames = c ("age", "workclass", "fnlwgt", "education", "educationnum", "maritalstatus", "occupation", "relationship", "race", "sex", "capitalgain", "capitalloss", "hoursperweek", "nativecountry", "incomelevel") #Reading training data training = read.table (trainFile, header = FALSE, sep = ",", strip.white = TRUE, col.names = colNames, na.strings = "?", stringsAsFactors = TRUE)
現(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下載。

數(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)容。