การประมวลผลข้อมูลล่วงหน้าใน R: Ultimate Tutorial [2022]

เผยแพร่แล้ว: 2021-03-01

ในการประมวลผลข้อมูลล่วงหน้าของเราในบทช่วยสอน R คุณจะได้เรียนรู้พื้นฐานของวิธีดำเนินการประมวลผลข้อมูลล่วงหน้า บทช่วยสอนนี้กำหนดให้คุณต้องคุ้นเคยกับพื้นฐานของ R และการเขียนโปรแกรม:

สารบัญ

1. ขั้นตอน: ค้นหาและแก้ไขปัญหา

เราจะเริ่มการประมวลผลข้อมูลล่วงหน้าในบทช่วยสอน R โดยการนำเข้าชุดข้อมูลก่อน ท้ายที่สุด คุณไม่สามารถประมวลผลข้อมูลล่วงหน้าได้หากคุณไม่มีข้อมูลตั้งแต่แรก

ในกรณีของเรา ข้อมูลจะถูกเก็บไว้ในไฟล์ data.csv ในไดเร็กทอรีการทำงาน คุณสามารถใช้คำสั่ง setwd (“ตำแหน่งที่ต้องการ”) และตั้งค่าไดเร็กทอรีการทำงาน

ต่อไปนี้คือวิธีที่คุณจะเริ่มดำเนินการ:

ชุดข้อมูล <- read.csv (“Data.csv”)

นี่คือชุดข้อมูลของเรา:

## ประเทศ อายุ เงินเดือน ซื้อแล้ว
## 1 ฝรั่งเศส 44 72000 ไม่
## 2 สเปน 27 48000 ใช่
## 3 เยอรมนี 30 54000 ไม่
## 4 สเปน 38 61000 ไม่
## 5 เยอรมนี 40 NA ใช่
## 6 ฝรั่งเศส 35 58000 ใช่
## 7 สเปน NA 52000 ไม่
## 8 ฝรั่งเศส 48 79000 ใช่
## 9 เยอรมนี 50 83000 ไม่
## 10 ฝรั่งเศส 37 67000 ใช่

อย่างที่คุณเห็น มีค่าขาดหายไปในคอลัมน์เงินเดือนและอายุของชุดข้อมูลของเรา เราได้ระบุปัญหาที่มีอยู่ในชุดข้อมูลของเราแล้ว ดังนั้นเราจึงสามารถเริ่มแก้ไขปัญหาเดียวกันได้

ดูเหมือนจะไม่มีปัญหาอื่น ๆ ในชุดข้อมูลของเรา ดังนั้นเราต้องจัดการกับค่าที่หายไปเท่านั้น เราสามารถแก้ไขปัญหานี้ได้โดยแทนที่ค่า NA ด้วยค่าเฉลี่ยของคอลัมน์ที่เกี่ยวข้อง โดยใช้วิธีดังนี้:

ชุดข้อมูล$อายุ <- ifelse(is.na(dataset$Age),

ave(dataset$Age, FUN = ฟังก์ชัน(x)

ค่าเฉลี่ย (x, na.rm = TRUE)),

ชุดข้อมูล$อายุ)

dataset$เงินเดือน <- ifelse(is.na(dataset$Salary),

ave(dataset$เงินเดือน, สนุก = ฟังก์ชัน(x)

ค่าเฉลี่ย (x, na.rm = TRUE)),

ชุดข้อมูล$เงินเดือน)

สังเกตว่าเราใช้ฟังก์ชัน ave() ที่นี่อย่างไร ใช้ค่าเฉลี่ยของคอลัมน์เฉพาะที่คุณป้อนโดยที่ FUN เป็นฟังก์ชันของ x ที่คำนวณค่าเฉลี่ยไม่รวมค่า NA (na.rm=TRUE)

อื่น,

นำสิ่งที่มีอยู่ใน dataset$Age

เราจะใช้ฟังก์ชัน mean() ตอนนี้:
#กำหนด x = 1 2 3

x <- 1:3

#แนะนำคุณค่าที่ขาดหาย

x[1] <- นะ

# หมายถึง = NA

ค่าเฉลี่ย (x)

## [1] NA

# ค่าเฉลี่ย = ค่าเฉลี่ยไม่รวมค่า NA

ค่าเฉลี่ย (x, na.rm = T)

## [1] 2.5

หลังจากระบุและแก้ไขปัญหาแล้ว ชุดข้อมูลของเรามีลักษณะดังนี้:

## ประเทศ อายุ เงินเดือน ซื้อแล้ว
## 1 ฝรั่งเศส 44 72000.00 ไม่
## 2 สเปน 27 48000.00 ใช่
## 3 เยอรมนี 30 54000.00 ไม่
## 4 สเปน 38 61000.00 ไม่
## 5 เยอรมนี 40 63777.78 ใช่
## 6 ฝรั่งเศส 35 58000.00 ใช่
## 7 สเปน 38 52000.00 ไม่
## 8 ฝรั่งเศส 48 79000.00 ใช่
## 9 เยอรมนี 50 83000.00 ไม่
## 10 ฝรั่งเศส 37 67000.00 ใช่

อ่านเพิ่มเติม: โอกาสในการทำงานในภาษาการเขียนโปรแกรม R

2. ขั้นตอน: ข้อมูลหมวดหมู่

ข้อมูลตามหมวดหมู่คือข้อมูลที่ไม่ใช่ตัวเลขที่อยู่ในหมวดหมู่เฉพาะ คอลัมน์ประเทศในชุดข้อมูลของเราเป็นข้อมูลตามหมวดหมู่ ฟังก์ชัน read.csv() ใน R จะทำให้ตัวแปรสตริงทั้งหมดเป็นตัวแปรหมวดหมู่ อย่างไรก็ตาม เราไม่สามารถใช้งานได้ในทุกกรณี

ต่อไปนี้คือวิธีที่คุณสามารถสร้างตัวแปรเฉพาะเป็นตัวแปรปัจจัยได้:
dataset$Country = ปัจจัย (dataset$Country,

ระดับ = c('ฝรั่งเศส', 'สเปน', 'เยอรมนี'),

ป้ายกำกับ = c (1, 2, 3))

ชุดข้อมูล$ซื้อ = ปัจจัย (ชุดข้อมูล$ซื้อแล้ว

ระดับ = c('ไม่', 'ใช่'),

ป้ายกำกับ = c(0, 1))

3. ขั้นตอน: การแยกข้อมูล

ตอนนี้ เราต้องแยกชุดข้อมูลของเราออกเป็นสองชุดข้อมูลแยกกัน อันหนึ่งสำหรับฝึกโมเดลแมชชีนเลิร์นนิง ในขณะที่อีกอันหนึ่งสำหรับการทดสอบแบบเดียวกัน

ในการดำเนินการดังกล่าว ก่อนอื่นเราจะติดตั้งแพ็คเกจ caTools (หากไม่มีให้ใช้งานได้) และเพิ่มลงในไลบรารีของเรา หลังจากนั้น เราจะใช้ฟังก์ชัน set.seed() เพื่อให้แน่ใจว่าการแบ่งจะทำแบบสุ่ม ใช้รหัสต่อไปนี้:
ห้องสมุด (caTools)

ชุด.เมล็ด(123)

split = sample.split (ชุดข้อมูล $ ซื้อแล้ว, SplitRatio = 0.8)

training_set = เซ็ตย่อย (ชุดข้อมูล, สปลิต == จริง)

test_set = ชุดย่อย (ชุดข้อมูล, แยก == FALSE)

คุณต้องสังเกตว่าเรารักษาอัตราส่วนการแยกเป็น 80:20 เนื่องจากเป็นอัตราส่วนการแยกแบบธรรมดาที่สุดสำหรับชุดฝึกซ้อมและชุดทดสอบ วิธีการ sample.split() ของเราได้นำคอลัมน์มาและสร้างอาร์เรย์ตัวเลขด้วยค่าจริงและค่าเท็จแบบสุ่มตามอัตราส่วนการแยก

4. ขั้นตอน: การปรับขนาดคุณลักษณะหรือการปรับให้เหมาะสม

จำเป็นต้องมีการปรับขนาดคุณลักษณะเมื่อคุณลักษณะต่างๆ ในชุดข้อมูลของคุณมีช่วงที่แตกต่างกัน ในกรณีของเรา คอลัมน์อายุและเงินเดือนมีช่วงที่แตกต่างกัน ซึ่งอาจทำให้เกิดปัญหาในการฝึกโมเดล ML ของเรา

เมื่อคุณมีคุณสมบัติที่มีช่วงที่สูงกว่าคุณลักษณะอื่นๆ อย่างเห็นได้ชัด ระยะทางแบบยุคลิดจะเพิ่มขึ้นอย่างมาก ทำให้แบบจำลองให้ผลลัพธ์ที่ไม่ถูกต้อง

โปรดทราบว่าไลบรารี่ส่วนใหญ่ใน R จะแก้ไขปัญหานี้โดยอัตโนมัติ แต่สิ่งสำคัญคือต้องทราบวิธีแก้ไขปัญหานี้ ทำดังต่อไปนี้:

training_set[,2:3] = มาตราส่วน (training_set[,2:3])

test_set[,2:3] = มาตราส่วน (test_set[,2:3])

มันจะแก้ไขปัญหาและคุณสมบัติของชุดฝึกอบรมของคุณจะมีช่วงเดียวกัน ช่วยลดโอกาสของข้อผิดพลาดใดๆ ระหว่างการใช้งานแมชชีนเลิร์นนิง

รับ ใบรับรองวิทยาศาสตร์ข้อมูล จากมหาวิทยาลัยชั้นนำของโลก เรียนรู้หลักสูตร Executive PG Programs, Advanced Certificate Programs หรือ Masters Programs เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว

บทสรุป

เราหวังว่าคุณจะพบว่าการประมวลผลข้อมูลล่วงหน้าของเราในบทช่วยสอน R มีประโยชน์ จะเป็นการดีที่สุดที่จะเข้าใจบทช่วยสอนนี้ก่อนที่คุณจะลองทดสอบด้วยตัวเอง การทำความเข้าใจแนวคิดมีความสำคัญมากกว่าการใช้แนวคิดเหล่านี้

คุณคิดอย่างไรกับการประมวลผลข้อมูลล่วงหน้าในบทช่วยสอน R แบ่งปันในความคิดเห็นด้านล่าง

หากคุณอยากเรียนรู้เกี่ยวกับ R วิทยาศาสตร์ข้อมูล ลองดู Executive PG ใน Data Science ซึ่งสร้างขึ้นสำหรับมืออาชีพด้านการทำงานและเสนอกรณีศึกษาและโครงการมากกว่า 10 รายการ เวิร์กช็อปภาคปฏิบัติ การให้คำปรึกษากับผู้เชี่ยวชาญในอุตสาหกรรม แบบตัวต่อตัว ที่ 1 พร้อมที่ปรึกษาในอุตสาหกรรม การเรียนรู้มากกว่า 400 ชั่วโมงและความช่วยเหลือด้านงานกับบริษัทชั้นนำ

Polymorphism มีกี่ประเภทใน python?

ใน Python ความหลากหลายหมายถึงชื่อฟังก์ชันทั่วไปที่สามารถใช้เพื่อวัตถุประสงค์ที่หลากหลาย แนวคิดนี้มักใช้ในแนวคิดการเขียนโปรแกรม Python เชิงวัตถุ
Polymorphism ถูกนำมาใช้ใน Python เพื่อวัตถุประสงค์หลายประการ เช่น Duck Typing, Operator overloading, Method overloading และ Method overriding เนื่องจากเป็นภาษาโปรแกรมอื่นๆ เช่น Java และ C++ การโอเวอร์โหลดและการเอาชนะเป็นวิธีการหลักสองวิธีในการบรรลุความหลากหลาย
คลาสที่มีเมธอดมากมายที่มีชื่อเดียวกันแต่อาร์กิวเมนต์ที่แตกต่างกันเรียกว่าเมธอดโอเวอร์โหลด แม้ว่าวิธีการโอเวอร์โหลดจะไม่ได้รับการสนับสนุนโดยค่าเริ่มต้นใน Python แต่ก็มีเทคนิคมากมายที่ต้องทำ

พิมพ์เป็ดคืออะไร?

การพิมพ์เป็ดเป็นแนวคิดที่หลากหลาย คำว่า เป็ด พิมพ์ มาจากสุภาษิตที่ระบุว่า อะไรก็ตามที่เดิน ควัก และว่ายได้เหมือนเป็ด จะถูกขนานนามว่าเป็ด ไม่ว่ามันจะเป็นอะไรก็ตาม พูดง่ายๆ ก็คือ แสดงว่าหากมีสิ่งใดตรงกับพฤติกรรมของมันกับอย่างอื่น ก็จะถือว่าเป็นสมาชิกของหมวดหมู่นั้น

การโอเวอร์โหลดและการเอาชนะคืออะไร?

เมื่อใช้เมธอดที่มีชื่อเดียวกันและอาร์กิวเมนต์ทั้งในคลาสที่ได้รับและคลาสเบสหรือซูเปอร์คลาส วิธีการคลาสที่ได้รับจะแทนที่เมธอดที่ให้ไว้ในคลาสฐาน เมื่อเรียกใช้เมธอดที่ถูกแทนที่ เมธอดของคลาสที่ได้รับจะถูกเรียกใช้เสมอ วิธีการที่ใช้ในคลาสฐานถูกซ่อนอยู่ในขณะนี้
ในทางกลับกัน Python ไม่ได้จัดเตรียมวิธีการโอเวอร์โหลดตามประเภท ปริมาณ หรือลำดับของพารามิเตอร์เมธอด วิธีการโอเวอร์โหลดเป็นวิธี Python สำหรับกำหนดวิธีการที่สามารถเรียกได้หลายวิธี ภาษานี้ไม่เหมือนกับภาษาโปรแกรมอื่นๆ