您好,登錄后才能下訂單哦!
今天小編給大家分享一下R語言數據集實例分析的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
1 獲得數據集(get the dataset)
數據集包括兩部分,獨立變量(independent variable)和依賴變量(dependent variable
機器學習的目的就是需要通過獨立變量來預測非獨立變量(prediction)。
2 導入數據集(importing dataset)
先設置working directory, 將代碼與數據保存在working directory文件夾下
# 設置working directory
getwd()
setwd("C:\\Users\\M*****\\Documents\\ML\\day1\\")
# Importing the dataset
dataset <- read.csv("Data.csv",header=T,stringsAsFactor=FALSE)
View(dataset)
Age和Salary是獨立變量,通過這兩個獨立變量預測是否會Purchase(非獨立變量)。
3 處理空數據(Handling the missing data)
在數據集中可能會出現為空的數據,我們不能刪除有空數據的列,這會對我們機器學習的結果造成影響,NA有很多處理方法(后續分享),此處用mean來代替空值。
# Taking care of missing data
dataset$Age = ifelse(is.na(dataset$Age),mean(dataset$Age, na.rm = TRUE),dataset$Age)
dataset$Salary = ifelse(is.na(dataset$Salary),
ave(dataset$Salary, FUN = function(x) mean(x, na.rm = TRUE)),
dataset$Salary)
Country Age Salary Purchased
1 France 44.00000 72000.00 No
2 Spain 27.00000 48000.00 Yes
3 Germany 30.00000 54000.00 No
4 Spain 38.00000 61000.00 No
5 Germany 40.00000 63777.78 Yes
6 France 35.00000 58000.00 Yes
7 Spain 38.77778 52000.00 No
8 France 48.00000 79000.00 Yes
9 Germany 50.00000 83000.00 No
10 France 37.00000 67000.00 Yes
4 分類數據(Encoding categorical data)
對于數據集中的同類別的數據(如country列)為非numerical的數據,可以用數字1,2,3區分不同國家,但是會出現問題。國家之間地位相同,但數字有大小之分。
因此需要設置啞變量,不同的類別(如不同國家)單獨分為一個列,屬于這個國家的設置為1,不屬于的設置為0。
注:在R語言中不需要特別將每一類別分為一列,因為每一列用vector來表示,可以接受不同的大小。
# Encoding categorical data
dataset$Country = factor(dataset$Country,
levels = c('France', 'Spain', 'Germany'),
labels = c(1, 2, 3))
dataset$Purchased = factor(dataset$Purchased,
levels = c('No', 'Yes'),
labels = c(0, 1))
5 將數據集分類
當數據集準備完成之后,將獨立變量和依賴變量分為訓練集和測試集。訓練集與測試集的比例一般是用4:1。
# Splitting the dataset into the Training set and Test set
# install.packages('caTools')
library(caTools)
set.seed(123)
split = sample.split(dataset$Purchased, SplitRatio = 0.8)
training_set = subset(dataset, split == TRUE)
test_set = subset(dataset, split == FALSE)
test_set
Country Age Salary Purchased
6 1 35 58000 1
9 3 50 83000 0
6 特征量化 (feature scaling)
數據處理的重要步驟,在機器學習中,由于每個變量的范圍不同,如果兩個變量之間差距太大,會導致距離對結果產生影響。需要一定的標準化改變,最簡單的方式是將數據縮放至[0.1]或者[-1,1]之間:
# Feature Scaling
training_set[, 2:3] = scale(training_set[, 2:3])
test_set[, 2:3] = scale(test_set[, 2:3])
test_set
Country Age Salary Purchased
6 1 -0.7071068 -0.7071068 1
9 3 0.7071068 0.7071068 0
Done 建立模板
經過以上幾個簡單的對數據進行預處理的步驟,既為初步的分析模板,
下面就開始真正的機器學習入門到放棄了。
R代碼如下:
# Data Preprocessing template
# Importing the dataset
dataset <- read.csv("Data.csv",header=T,stringsAsFactor=FALSE)
# Taking care of missing data
dataset$Age = ifelse(is.na(dataset$Age),mean(dataset$Age, na.rm = TRUE),dataset$Age)
dataset$Salary = ifelse(is.na(dataset$Salary),
ave(dataset$Salary, FUN = function(x) mean(x, na.rm = TRUE)),
dataset$Salary)
# Encoding categorical data
dataset$Country = factor(dataset$Country,
levels = c('France', 'Spain', 'Germany'),
labels = c(1, 2, 3))
dataset$Purchased = factor(dataset$Purchased,
levels = c('Yes','No'),
labels = c(1, 0))
# Splitting the dataset into the Training set and Test set
library(caTools)
set.seed(123)
split = sample.split(dataset$Purchased, SplitRatio = 0.8)
training_set = subset(dataset, split == TRUE)
test_set = subset(dataset, split == FALSE)
# Feature Scaling
training_set[, 2:3] = scale(training_set[, 2:3])
test_set[, 2:3] = scale(test_set[, 2:3])
以上就是“R語言數據集實例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。