การเรียนรู้ของเครื่องด้วย R
การเรียนรู้ของเครื่องคือปัจจุบันและอนาคต! ตั้งแต่เครื่องมือแนะนำของ Netflix ไปจนถึงรถยนต์ขับเคลื่อนด้วยตนเองของ Google ทั้งหมดนี้เป็นการเรียนรู้ของเครื่อง บล็อกเกี่ยวกับ Machine Learning with R นี้ช่วยให้คุณเข้าใจแนวคิดหลักของการเรียนรู้ของเครื่องตามด้วยอัลกอริทึมการเรียนรู้ของเครื่องที่แตกต่างกันและใช้อัลกอริทึมการเรียนรู้ของเครื่องเหล่านั้นกับ R
บล็อกเกี่ยวกับ“ Machine Learning with R” ประกอบด้วยส่วนต่างๆเหล่านี้:
- ทำความเข้าใจเกี่ยวกับ Machine Learning
- ประเภทของอัลกอริทึมการเรียนรู้ของเครื่อง
- การใช้อัลกอริทึมการเรียนรู้ของเครื่องด้วย R
การเรียนรู้ของเครื่องด้วย R | Edureka
ทำความเข้าใจเกี่ยวกับ Machine Learning
คุณรู้ได้อย่างไรว่าทั้งหมดนี้เป็นปลา?
ตอนเป็นเด็กคุณอาจเคยเจอรูปปลาและคุณครูอนุบาลหรือผู้ปกครองบอกคุณว่านี่คือปลาและมีลักษณะเฉพาะบางอย่างที่เกี่ยวข้องเช่นมีครีบเหงือกคู่ของ ตาหางและอื่น ๆ ตอนนี้เมื่อใดก็ตามที่สมองของคุณเจอภาพที่มีชุดคุณสมบัติเหล่านั้นมันจะบันทึกภาพนั้นเป็นปลาโดยอัตโนมัติเพราะสมองของคุณมี ได้เรียนรู้ ว่ามันคือปลา
นั่นคือสมองของเราทำงานอย่างไร แต่เกี่ยวกับเครื่องจักรล่ะ? ถ้าภาพเดียวกันถูกป้อนเข้าเครื่องเครื่องจะระบุได้อย่างไรว่าเป็นปลา?
นี่คือจุดที่ M การเรียนรู้ เข้ามาเราจะให้อาหารภาพปลาไปยังคอมพิวเตอร์ที่มีแท็ก 'ปลา' ต่อไปจนกว่า เครื่องเรียนรู้คุณสมบัติทั้งหมดที่เกี่ยวข้อง กับ ปลา.
เมื่อเครื่องเรียนรู้คุณสมบัติทั้งหมดที่เกี่ยวข้องกับปลาเราจะป้อนข้อมูลใหม่เพื่อพิจารณาว่ามันเรียนรู้ได้มากแค่ไหน
กล่าวอีกนัยหนึ่ง ข้อมูลดิบ / ข้อมูลการฝึกอบรม ให้กับเครื่องเพื่อให้ เรียนรู้ คุณสมบัติทั้งหมดที่เกี่ยวข้องกับ ข้อมูลการฝึกอบรม เมื่อเรียนรู้เสร็จแล้วจะได้รับ ข้อมูลใหม่ / ข้อมูลการทดสอบ เพื่อพิจารณาว่าเครื่องเรียนรู้ได้ดีเพียงใด
ให้เราก้าวไปข้างหน้าในบล็อก Machine Learning with R และทำความเข้าใจเกี่ยวกับประเภทของ Machine Learning
ประเภทของการเรียนรู้ของเครื่อง
การเรียนรู้ภายใต้การดูแล:
อัลกอริทึมการเรียนรู้ภายใต้การดูแลเรียนรู้จากชุดข้อมูลที่รู้จัก (ข้อมูลการฝึกอบรม) ซึ่งมีป้ายกำกับเพื่อทำการคาดการณ์
การถดถอยและการจัดประเภทเป็นตัวอย่างของการเรียนรู้ภายใต้การดูแล
#การจัดหมวดหมู่:
การจัดหมวดหมู่เป็นตัวกำหนดว่าการสังเกตใหม่เป็นชุดของหมวดหมู่ใดกล่าวคืออัลกอริทึมการจำแนกเรียนรู้คุณลักษณะและป้ายกำกับทั้งหมดของข้อมูลการฝึกอบรมและเมื่อมีการให้ข้อมูลใหม่จะต้องกำหนดป้ายกำกับให้กับข้อสังเกตใหม่โดยขึ้นอยู่กับสิ่งที่ได้เรียนรู้ จากข้อมูลการฝึกอบรม
สำหรับตัวอย่างนี้หากการสังเกตครั้งแรกได้รับป้ายกำกับว่า 'ผู้ชาย' แสดงว่ามีการจัดประเภทอย่างถูกต้อง แต่หากมีป้ายกำกับว่า 'ผู้หญิง' การจัดประเภทจะไม่ถูกต้อง ในทำนองเดียวกันสำหรับข้อสังเกตที่สองหากฉลากที่ระบุเป็น 'ผู้หญิง' แสดงว่าถูกจัดประเภทอย่างถูกต้องมิฉะนั้นการจัดประเภทจะผิด
# การถดถอย:
การถดถอยเป็นอัลกอริธึมการเรียนรู้ภายใต้การดูแลซึ่งช่วยในการพิจารณาว่าตัวแปรหนึ่งมีอิทธิพลต่อตัวแปรอื่นอย่างไร
ตรงนี้“ living_area” คือตัวแปรอิสระและ“ ราคา” คือตัวแปรตามนั่นคือเรากำลังพิจารณาว่า“ ราคา” แตกต่างกันอย่างไรเมื่อเทียบกับ“ living_area”
การเรียนรู้ที่ไม่มีผู้ดูแล:
อัลกอริทึมการเรียนรู้ที่ไม่มีผู้ดูแลจะดึงการอนุมานจากข้อมูลที่ไม่มีป้ายกำกับ
การทำคลัสเตอร์ เป็นตัวอย่างของการเรียนรู้ที่ไม่มีผู้ดูแล “ K-mean”,“ Hierarchical”,“ Fuzzy C-means” เป็นตัวอย่างของอัลกอริทึมการจัดกลุ่ม
ในตัวอย่างนี้ชุดการสังเกตแบ่งออกเป็นสองกลุ่ม การจัดกลุ่มจะกระทำบนพื้นฐานของความคล้ายคลึงกันระหว่างข้อสังเกต มีความคล้ายคลึงกันภายในคลัสเตอร์สูงและมีความคล้ายคลึงกันระหว่างคลัสเตอร์ต่ำนั่นคือมีความคล้ายคลึงกันสูงมากระหว่างรถโดยสารทั้งหมด แต่มีความคล้ายคลึงกันระหว่างรถเมล์และรถยนต์น้อย
การเรียนรู้การเสริมแรง:
Reinforcement Learning เป็นอัลกอริทึมการเรียนรู้ของเครื่องประเภทหนึ่งที่ เครื่อง / ตัวแทน ใน สิ่งแวดล้อม เรียนรู้พฤติกรรมในอุดมคติเพื่อเพิ่มประสิทธิภาพสูงสุด จำเป็นต้องมีข้อเสนอแนะรางวัลอย่างง่ายเพื่อให้ตัวแทนเรียนรู้พฤติกรรมของตนซึ่งเรียกว่า สัญญาณเสริมแรง .
มาดูกัน Pacman ตัวอย่างเช่น. ตราบใดที่ Pacman ยังคงกินอาหารมันจะได้รับคะแนน แต่เมื่อมันปะทะกับสัตว์ประหลาดมันจะเสียชีวิต ดังนั้น Pacman จึงเรียนรู้ว่ามันต้องกินอาหารมากขึ้นและหลีกเลี่ยงสัตว์ประหลาดเพื่อปรับปรุงประสิทธิภาพ
การนำ Machine Learning ไปใช้กับ R:
การถดถอยเชิงเส้น:
เราจะทำงานร่วมกับชุดข้อมูลเพชรเพื่อใช้อัลกอริธึมการถดถอยเชิงเส้น:
คำอธิบายของชุดข้อมูล:
ก่อนที่จะสร้างแบบจำลองใด ๆ บนข้อมูลเราควรแบ่งข้อมูลออกเป็นชุด 'ฝึกอบรม' และ 'ทดสอบ' แบบจำลองนี้จะสร้างขึ้นจากชุด 'รถไฟ' และจะตรวจสอบความแม่นยำในชุด 'การทดสอบ'
เราจำเป็นต้องโหลดแพ็คเกจ“ caTools” เพื่อแบ่งข้อมูลออกเป็นสองชุด
ห้องสมุด (caTools)
แพ็คเกจ“ caTools” มีฟังก์ชัน“ sample.split ()” ซึ่งช่วยในการแยกข้อมูล
sample.split (เพชร $ ราคา SplitRatio = 0.65) -> split_index
65% ของการสังเกตจากคอลัมน์ราคาได้รับการกำหนดป้ายกำกับ 'จริง' และอีก 35% ที่เหลือได้รับการกำหนดป้ายกำกับ 'เท็จ'
ชุดย่อย (เพชร, split_index == T) -> รถไฟ ชุดย่อย (เพชร, split_index == F) -> ทดสอบ
ข้อสังเกตทั้งหมดที่มีฉลาก 'จริง' ได้ถูกจัดเก็บไว้ใน ' รถไฟ” วัตถุ และการสังเกตที่มีป้ายกำกับ 'เท็จ' ได้ถูกกำหนดให้กับชุด 'การทดสอบ'
ตอนนี้การแยกเสร็จสิ้นและเรามีชุด 'ฝึก' และ 'ทดสอบ' แล้วก็ถึงเวลาสร้างแบบจำลองการถดถอยเชิงเส้นในชุดการฝึก
เราจะใช้ฟังก์ชัน“ lm ()” เพื่อสร้างแบบจำลองการถดถอยเชิงเส้นบนข้อมูล“ รถไฟ” เรากำลังพิจารณา ราคา ของเพชรที่เกี่ยวข้องกับตัวแปรอื่น ๆ ทั้งหมดของชุดข้อมูล โมเดลที่สร้างขึ้นจะถูกเก็บไว้ในอ็อบเจ็กต์“ mod_regress”
lm (ราคา ~., data = train) -> mod_regress
ตอนนี้เราได้สร้างแบบจำลองขึ้นแล้วเราจำเป็นต้องทำการคาดคะเนในชุด 'การทดสอบ' ฟังก์ชัน“ ทำนาย ()” ใช้เพื่อรับคำทำนาย ต้องใช้สองอาร์กิวเมนต์: แบบจำลองที่สร้างขึ้น และ ชุดทดสอบ ผลลัพธ์ที่คาดการณ์จะถูกเก็บไว้ในออบเจ็กต์“ result_regress”
ทำนาย (mod_regress, ทดสอบ) -> result_regress
มารวมค่าราคาจริงจากชุดข้อมูล 'ทดสอบ' กับค่าที่คาดการณ์ไว้เป็นชุดข้อมูลเดียวโดยใช้ฟังก์ชัน 'cbind ()' data-frame ใหม่ถูกเก็บไว้ใน“ Final_Data”
cbind (Actual = test $ price, Predicted = result_regress) -> Final_Data
as.data.frame (Final_Data) -> Final_Data
ภาพรวมของ“ Final_Data” ซึ่งประกอบด้วยค่าจริงและค่าที่คาดการณ์:
เรามาค้นหาข้อผิดพลาดโดยการลบค่าที่คาดการณ์ออกจากค่าจริงและเพิ่มข้อผิดพลาดนี้เป็นคอลัมน์ใหม่ใน“ Final_Data”:
(Final_Data $ Actual- Final_Data $ Predicted) -> ข้อผิดพลาด
cbind (Final_Data ข้อผิดพลาด) -> Final_Data
ภาพรวมของ“ Final_Data” ซึ่งประกอบด้วยข้อผิดพลาดในการทำนาย:
วิธีใช้อนาคอนดาสำหรับงูหลาม
ตอนนี้เราจะมาคำนวณกันต่อ ' รูทค่าเฉลี่ยกำลังสองผิดพลาด” ซึ่งทำให้เกิดข้อผิดพลาดโดยรวมสำหรับการคาดการณ์ทั้งหมด
rmse1<-sqrt(mean(Final_Data$error^2))
rmse1
ต่อไปเรามาสร้างแบบจำลองอีกแบบเพื่อที่เราจะได้เปรียบเทียบความแม่นยำของทั้งสองแบบนี้และพิจารณาว่าแบบใดดีกว่ากัน
เราจะสร้างแบบจำลองการถดถอยเชิงเส้นใหม่ในชุด 'รถไฟ' แต่คราวนี้เราจะทิ้งคอลัมน์ 'x' และ 'y' จากตัวแปรอิสระเช่น 'ราคา' ของเพชรจะถูกกำหนดโดย คอลัมน์ยกเว้น 'x' และ 'y'
โมเดลที่สร้างขึ้นจะถูกเก็บไว้ใน“ mod_regress2”:
lm (ราคา ~.-y-z, data = train) -> mod_regress2
ผลลัพธ์ที่คาดการณ์จะถูกเก็บไว้ใน“ result_regress2”
ทำนาย (mod_regress2, ทดสอบ) -> result_regress2
ค่าจริงและค่าที่คาดการณ์จะรวมกันและเก็บไว้ใน“ Final_Data2”:
cbind (จริง = ทดสอบ $ ราคา, Predicted = result_regress2) -> Final_Data2
as.data.frame (Final_Data2) -> Final_Data2
เรามาเพิ่มข้อผิดพลาดในการคาดคะเนใน“ Final_Data2” ด้วย
(Final_Data2 $ Actual- Final_Data2 $ Predicted) -> error2
cbind (Final_Data2, error2) -> Final_Data2
ภาพรวมของ“ Final_Data2”:
ค้นหา Root Mean Square Error เพื่อรับข้อผิดพลาดรวม:
rmse2<-sqrt(mean(Final_Data2$error^2))
เราเห็นว่า“ rmse2” น้อยกว่า“ rmse1” เล็กน้อยและด้วยเหตุนี้โมเดลที่สองจึงดีกว่ารุ่นแรกเล็กน้อย
การจัดหมวดหมู่:
เราจะทำงานร่วมกับชุดข้อมูล“ car_purchase” เพื่อใช้งาน การแบ่งพาร์ติชันแบบเรียกซ้ำ ซึ่งเป็นอัลกอริทึมการจำแนกประเภท
เรามาแบ่งข้อมูลออกเป็นชุด“ train” และ“ test” โดยใช้ฟังก์ชัน“ sample.split ()” จากแพ็คเกจ“ caTools”
ห้องสมุด (caTools)
65% ของการสังเกตจากคอลัมน์ 'ซื้อแล้ว' จะถูกกำหนดป้ายกำกับ 'TRUE' และส่วนที่เหลือจะถูกกำหนดป้ายกำกับ 'FALSE'
sample.split (car_purchase $ ซื้อแล้ว SplitRatio = 0.65) -> split_values
การสังเกตทั้งหมดที่มีป้ายกำกับ 'TRUE' จะถูกจัดเก็บไว้ในข้อมูล 'การฝึกอบรม' และการสังเกตที่มีป้ายกำกับ 'FALSE' จะถูกกำหนดให้กับข้อมูล 'ทดสอบ'
ชุดย่อย (car_purchase, split_values == T) -> train_data
ชุดย่อย (car_purchase, split_values == F) -> test_data
เวลาในการสร้างอัลกอริธึม Recursive Partitioning:
เราจะเริ่มต้นด้วยการโหลดแพ็คเกจ 'rpart':
ห้องสมุด (rpart)
คอลัมน์“ ซื้อแล้ว” จะเป็นตัวแปรตามและคอลัมน์อื่น ๆ ทั้งหมดเป็นตัวแปรอิสระนั่นคือเรากำลังพิจารณาว่าบุคคลนั้นซื้อรถหรือไม่โดยเกี่ยวกับคอลัมน์อื่น ๆ ทั้งหมด โมเดลสร้างขึ้นจาก“ train_data” และผลลัพธ์จะถูกเก็บไว้ใน“ mod1”
rpart (ซื้อแล้ว ~., data = train_data) -> mod1
มาพล็อตผลลัพธ์:
พล็อต (mod1, margin = 0.1)
ข้อความ (mod1, สวย = T, cex = 0.8)
ตอนนี้เรามาคาดเดาผลลัพธ์ใน“ test_data” กัน เรากำลังให้โมเดล rpart ที่สร้างขึ้นเป็น“ mod1” เป็นอาร์กิวเมนต์แรกชุดทดสอบ“ test_data” เป็นอาร์กิวเมนต์ที่สองและประเภทการคาดคะเนเป็น“ คลาส” สำหรับอาร์กิวเมนต์ที่สาม ผลลัพธ์จะถูกเก็บไว้ในวัตถุ 'result1'
ทำนาย (mod1, test_data, type = 'class') -> result1
เรามาประเมินความถูกต้องของแบบจำลองโดยใช้ฟังก์ชัน 'confuseMatrix ()' จากแพ็กเกจคาเร็ต
ห้องสมุด (คาเร็ต)
สับสนเมทริกซ์ (ตาราง (test_data $ ซื้อแล้วผลลัพธ์ 1))
เมทริกซ์ความสับสนบอกเราว่าจากการสังเกต 90 ครั้งที่บุคคลนั้นไม่ได้ซื้อรถการสังเกต 79 รายการได้รับการจัดประเภทอย่างถูกต้องว่าเป็น“ ไม่” และ 11 ได้รับการจัดประเภทผิดเป็น“ ใช่” ในทำนองเดียวกันจากการสังเกต 50 รายการที่ผู้ซื้อรถคันดังกล่าว 47 ถูกจัดประเภทอย่างถูกต้องว่าเป็น 'ใช่' และ 3 ข้อถูกจัดประเภทเป็น 'ไม่' อย่างไม่ถูกต้อง
เราสามารถหาความแม่นยำของแบบจำลองได้โดยการหารการคาดคะเนที่ถูกต้องด้วยการคาดคะเนทั้งหมดเช่น (79 + 47) / (79 + 47 + 11 + 3)
K- หมายถึงการจัดกลุ่ม:
เราจะทำงานร่วมกับชุดข้อมูล“ ม่านตา” เพื่อใช้ k-mean clustering:
เรามาลบคอลัมน์ 'สายพันธุ์' และสร้างชุดข้อมูลใหม่ซึ่งประกอบด้วยสี่คอลัมน์แรกจากชุดข้อมูล 'ม่านตา'
ม่านตา [1: 4] -> iris_k
ให้เราหาจำนวนคลัสเตอร์เป็น 3 ฟังก์ชัน“ Kmeans ()” รับข้อมูลอินพุตและจำนวนคลัสเตอร์ที่ข้อมูลจะถูกจัดคลัสเตอร์ ไวยากรณ์คือ: kmeans (data, k) โดยที่ k คือจำนวนคลัสเตอร์เซ็นเตอร์
กม. (iris_k, 3) -> k1
การวิเคราะห์คลัสเตอร์:
str (k1)
ฟังก์ชั่น str () ให้โครงสร้างของ kmeans ซึ่งรวมถึงพารามิเตอร์ต่างๆเช่น withinss, betweenss และอื่น ๆ ซึ่งคุณสามารถหาประสิทธิภาพของ kmeans ได้
betweenss: ระหว่างผลรวมของกำลังสองเช่นความคล้ายคลึงกันภายในคลัสเตอร์
withinss: ภายในผลรวมของกำลังสองเช่นความคล้ายคลึงระหว่างคลัสเตอร์
totwithinss: ผลรวมของภายในทั้งหมดของคลัสเตอร์ทั้งหมดเช่นความคล้ายคลึงกันภายในคลัสเตอร์ทั้งหมด
การจัดกลุ่มที่ดีจะมีค่า“ tot.withinss” ที่ต่ำกว่าและค่า“ betweenss” ที่สูงกว่าซึ่งขึ้นอยู่กับจำนวนคลัสเตอร์ 'k' ที่เลือกไว้ในตอนแรก
ถึงเวลาแล้วที่จะเป็นผู้เชี่ยวชาญด้าน Machine Learning เพื่อใช้ประโยชน์จากโอกาสใหม่ ๆ ที่มาถึงคุณ สิ่งนี้ทำให้เรามาถึงจุดจบของสิ่งนี้ ' การเรียนรู้ของเครื่องด้วย R ” บล็อก ฉันหวังว่าบล็อกนี้จะเป็นประโยชน์
Edureka ได้รับการดูแลเป็นพิเศษ ซึ่งช่วยให้คุณมีความเชี่ยวชาญในอัลกอริทึมการเรียนรู้ของเครื่องเช่น K-Means Clustering, Decision Trees, Random Forest, Naive Bayes คุณจะได้เรียนรู้แนวคิดของสถิติอนุกรมเวลาการขุดข้อความและการเรียนรู้เชิงลึกเบื้องต้นด้วย ชุดใหม่สำหรับหลักสูตรนี้กำลังจะเริ่มเร็ว ๆ นี้ !!