การประมวลผลข้อมูลล่วงหน้าใน 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 ชั่วโมงและความช่วยเหลือด้านงานกับบริษัทชั้นนำ
ใน Python ความหลากหลายหมายถึงชื่อฟังก์ชันทั่วไปที่สามารถใช้เพื่อวัตถุประสงค์ที่หลากหลาย แนวคิดนี้มักใช้ในแนวคิดการเขียนโปรแกรม Python เชิงวัตถุ การพิมพ์เป็ดเป็นแนวคิดที่หลากหลาย คำว่า เป็ด พิมพ์ มาจากสุภาษิตที่ระบุว่า อะไรก็ตามที่เดิน ควัก และว่ายได้เหมือนเป็ด จะถูกขนานนามว่าเป็ด ไม่ว่ามันจะเป็นอะไรก็ตาม พูดง่ายๆ ก็คือ แสดงว่าหากมีสิ่งใดตรงกับพฤติกรรมของมันกับอย่างอื่น ก็จะถือว่าเป็นสมาชิกของหมวดหมู่นั้น เมื่อใช้เมธอดที่มีชื่อเดียวกันและอาร์กิวเมนต์ทั้งในคลาสที่ได้รับและคลาสเบสหรือซูเปอร์คลาส วิธีการคลาสที่ได้รับจะแทนที่เมธอดที่ให้ไว้ในคลาสฐาน เมื่อเรียกใช้เมธอดที่ถูกแทนที่ เมธอดของคลาสที่ได้รับจะถูกเรียกใช้เสมอ วิธีการที่ใช้ในคลาสฐานถูกซ่อนอยู่ในขณะนี้Polymorphism มีกี่ประเภทใน python?
Polymorphism ถูกนำมาใช้ใน Python เพื่อวัตถุประสงค์หลายประการ เช่น Duck Typing, Operator overloading, Method overloading และ Method overriding เนื่องจากเป็นภาษาโปรแกรมอื่นๆ เช่น Java และ C++ การโอเวอร์โหลดและการเอาชนะเป็นวิธีการหลักสองวิธีในการบรรลุความหลากหลาย
คลาสที่มีเมธอดมากมายที่มีชื่อเดียวกันแต่อาร์กิวเมนต์ที่แตกต่างกันเรียกว่าเมธอดโอเวอร์โหลด แม้ว่าวิธีการโอเวอร์โหลดจะไม่ได้รับการสนับสนุนโดยค่าเริ่มต้นใน Python แต่ก็มีเทคนิคมากมายที่ต้องทำ พิมพ์เป็ดคืออะไร?
การโอเวอร์โหลดและการเอาชนะคืออะไร?
ในทางกลับกัน Python ไม่ได้จัดเตรียมวิธีการโอเวอร์โหลดตามประเภท ปริมาณ หรือลำดับของพารามิเตอร์เมธอด วิธีการโอเวอร์โหลดเป็นวิธี Python สำหรับกำหนดวิธีการที่สามารถเรียกได้หลายวิธี ภาษานี้ไม่เหมือนกับภาษาโปรแกรมอื่นๆ