การทำให้ข้อมูลเป็นมาตรฐานใน Python

Normalization Data Python



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

การทำให้เป็นมาตรฐานยังขึ้นอยู่กับประเภทข้อมูล เช่น รูปภาพ ข้อความ ตัวเลข เป็นต้น ดังนั้น ข้อมูลทุกประเภทจึงมีวิธีการที่แตกต่างกันในการทำให้เป็นมาตรฐาน ดังนั้น ในบทความนี้ เราจะเน้นที่ข้อมูลตัวเลข







วิธีที่ 1: การใช้ sklearn

วิธี sklearn เป็นวิธีที่มีชื่อเสียงมากในการทำให้ข้อมูลเป็นมาตรฐาน





ในเซลล์หมายเลข [83] : เรานำเข้าไลบรารีที่จำเป็นทั้งหมด NumPy และ sklearn คุณจะเห็นว่าเรานำเข้าการประมวลผลล่วงหน้าจาก sklearn เอง นั่นเป็นเหตุผลว่าทำไมนี่จึงเป็นวิธีการทำให้เป็นมาตรฐานของ sklearn





ในเซลล์หมายเลข [84] : เราได้สร้างอาร์เรย์ NumPy โดยมีค่าจำนวนเต็มที่ไม่เหมือนกัน

ในเซลล์หมายเลข [85] : เราเรียกวิธีการทำให้เป็นมาตรฐานจากการประมวลผลล่วงหน้า และส่งผ่าน numpy_array ซึ่งเราเพิ่งสร้างเป็นพารามิเตอร์



ในเซลล์หมายเลข [86] : เราสามารถดูได้จากผลลัพธ์ ข้อมูลจำนวนเต็มทั้งหมดของเราถูกทำให้เป็นมาตรฐานระหว่าง 0 ถึง 1

วิธีที่ 2: ทำให้คอลัมน์ใดคอลัมน์หนึ่งเป็นปกติในชุดข้อมูลโดยใช้ sklearn

เรายังทำให้คอลัมน์ชุดข้อมูลเป็นมาตรฐานได้ ในเรื่องนี้เราจะมาพูดถึงเรื่องนี้กัน


ในเซลล์หมายเลข [87] : เรานำเข้าแพนด้าห้องสมุดและ sklearn

ในเซลล์หมายเลข [88] : เราสร้างไฟล์ CSV จำลอง และตอนนี้กำลังโหลดไฟล์ CSV นั้นด้วยความช่วยเหลือของแพ็คเกจ pandas (read_csv)

ในเซลล์หมายเลข [89] : เราพิมพ์ไฟล์ CSV ที่เราเพิ่งโหลด

ในเซลล์หมายเลข [90] : เราอ่านคอลัมน์เฉพาะของไฟล์ CSV โดยใช้ np array และเก็บผลลัพธ์ไว้ที่ value_array

ในเซลล์หมายเลข [92] เราเรียกวิธีการทำให้เป็นมาตรฐานจากการประมวลผลล่วงหน้าและส่งผ่านพารามิเตอร์ value_array

วิธีที่ 3: แปลงเป็นนอร์มัลไลซ์โดยไม่ต้องใช้คอลัมน์เป็นอาร์เรย์ (โดยใช้ sklearn)

ในวิธีที่ 2 ก่อนหน้านี้ เราได้พูดถึงวิธีการสร้างคอลัมน์ไฟล์ CSV ที่เราสามารถทำให้เป็นมาตรฐานได้ แต่บางครั้ง เราจำเป็นต้องทำให้ชุดข้อมูลทั้งหมดเป็นมาตรฐาน จากนั้นเราสามารถใช้วิธีด้านล่างที่เราทำให้ชุดข้อมูลทั้งหมดเป็นมาตรฐาน แต่ตามคอลัมน์ (แกน = 0) ถ้าเราพูดถึงแกน = 1 มันจะทำการนอร์มัลไลซ์เป็นแถว แกน = 1 เป็นค่าเริ่มต้น


ในเซลล์หมายเลข [93] : เรานำเข้าแพนด้าห้องสมุดและ sklearn

ในเซลล์หมายเลข [94] : เราได้สร้างไฟล์ CSV จำลอง (demo_numeric.csv) และขณะนี้เรากำลังโหลดไฟล์ CSV นั้นด้วยความช่วยเหลือของแพ็คเกจ pandas (read_csv)

ในเซลล์หมายเลข [95] : เราพิมพ์ไฟล์ CSV ที่เราเพิ่งโหลด

ในเซลล์หมายเลข [96] : ตอนนี้ เราส่งไฟล์ CSV ทั้งหมดพร้อมกับแกนพารามิเตอร์พิเศษอีกหนึ่งตัว =0 ซึ่งบอกกับไลบรารีว่าผู้ใช้ต้องการทำให้ชุดข้อมูลทั้งคอลัมน์เป็นมาตรฐาน

ในเซลล์หมายเลข [97] เราพิมพ์ผลลัพธ์และทำให้ข้อมูลเป็นมาตรฐานด้วยค่าระหว่าง 0 ถึง 1

วิธีที่ 4: การใช้ MinMaxScaler()

sklearn ยังมีวิธีการทำให้เป็นมาตรฐานอีกวิธีหนึ่ง ซึ่งเราเรียกว่า MinMaxScalar นี่เป็นวิธีที่นิยมมากเพราะใช้งานง่าย


ในเซลล์หมายเลข [98] : เรานำเข้าแพ็คเกจที่จำเป็นทั้งหมด

ในเซลล์หมายเลข [99] : เราได้สร้างไฟล์ CSV จำลอง (demo_numeric.csv) และขณะนี้เรากำลังโหลดไฟล์ CSV นั้นด้วยความช่วยเหลือของแพ็คเกจ pandas (read_csv)

ในเซลล์หมายเลข [100] : เราพิมพ์ไฟล์ CSV ที่เราเพิ่งโหลด

ในเซลล์หมายเลข [101] : เราเรียก MinMaxScalar จากวิธีประมวลผลล่วงหน้า และสร้างวัตถุ (min_max_Scalar) สำหรับสิ่งนั้น เราไม่ได้ส่งผ่านพารามิเตอร์ใด ๆ เนื่องจากเราต้องทำให้ข้อมูลเป็นมาตรฐานระหว่าง 0 ถึง 1 แต่ถ้าคุณต้องการ คุณสามารถเพิ่มค่าของคุณซึ่งจะเห็นในวิธีถัดไป

ในเซลล์หมายเลข [102] : ก่อนอื่นเราอ่านชื่อคอลัมน์ทั้งหมดเพื่อใช้ในการแสดงผลต่อไป จากนั้นเราเรียก fit_tranform จากวัตถุที่สร้าง min_max_Scalar และส่งไฟล์ CSV เข้าไป

ในเซลล์หมายเลข [103] : เราได้รับผลลัพธ์ที่เป็นมาตรฐานซึ่งอยู่ระหว่าง 0 ถึง 1

วิธีที่ 5: การใช้ MinMaxScaler(feature_range=(x,y))

sklearn ยังให้ตัวเลือกในการเปลี่ยนค่าปกติของสิ่งที่คุณต้องการ โดยค่าเริ่มต้น พวกมันจะทำให้ค่าปกติระหว่าง 0 ถึง 1 แต่มีพารามิเตอร์ที่เราเรียกว่า feature_range ซึ่งสามารถตั้งค่าที่ทำให้เป็นมาตรฐานได้ตามความต้องการของเรา

ในเซลล์หมายเลข [104] : เรานำเข้าแพ็คเกจที่จำเป็นทั้งหมด

ในเซลล์หมายเลข [105] : เราได้สร้างไฟล์ CSV จำลอง (demo_numeric.csv) และขณะนี้เรากำลังโหลดไฟล์ CSV นั้นด้วยความช่วยเหลือของแพ็คเกจ pandas (read_csv)

ในเซลล์หมายเลข [106] : เราพิมพ์ไฟล์ CSV ที่เราเพิ่งโหลด

ในเซลล์หมายเลข [107] : เราเรียก MinMaxScalar จากวิธีประมวลผลล่วงหน้า และสร้างวัตถุ (min_max_Scalar) สำหรับสิ่งนั้น แต่เรายังส่งผ่านพารามิเตอร์อื่นภายใน MinMaxScaler (feature_range) ค่าพารามิเตอร์นั้นที่เราตั้งค่า 0 ถึง 2 ดังนั้นตอนนี้ MinMaxScaler จะทำให้ค่าข้อมูลเป็นปกติระหว่าง 0 ถึง 2

ในเซลล์หมายเลข [108] : ก่อนอื่นเราอ่านชื่อคอลัมน์ทั้งหมดเพื่อใช้ในการแสดงผลต่อไป จากนั้นเราเรียก fit_tranform จากวัตถุที่สร้าง min_max_Scalar และส่งไฟล์ CSV เข้าไป

ในเซลล์หมายเลข [109] : เราได้รับผลลัพธ์ที่เป็นมาตรฐานซึ่งอยู่ระหว่าง 0 ถึง 2

วิธีที่ 6: การใช้มาตราส่วนสัมบูรณ์สูงสุด

เรายังทำให้ข้อมูลเป็นมาตรฐานได้โดยใช้แพนด้า คุณสมบัติเหล่านี้ยังเป็นที่นิยมอย่างมากในการทำให้ข้อมูลเป็นมาตรฐาน การปรับขนาดแบบสัมบูรณ์สูงสุดทำให้ค่าปกติระหว่าง 0 ถึง 1 เราใช้ที่นี่ .max () และ .abs() ดังที่แสดงด้านล่าง:

ในเซลล์หมายเลข [110] : เรานำเข้าห้องสมุดของแพนด้า

ในเซลล์หมายเลข [111] : เราสร้าง dataframe จำลองและพิมพ์ dataframe นั้น

ในเซลล์หมายเลข [113] : เราเรียกแต่ละคอลัมน์แล้วหารค่าคอลัมน์ด้วย .max() และ .abs()

ในเซลล์หมายเลข [114] : เราพิมพ์ผลลัพธ์ และจากผลลัพธ์ เรายืนยันว่าข้อมูลของเราเป็นปกติระหว่าง 0 ถึง 1

วิธีที่ 7: การใช้วิธี z-score

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

ในเซลล์หมายเลข [115] : เราสร้าง dataframe จำลองและพิมพ์ dataframe นั้น

ในเซลล์หมายเลข [117] : เราคำนวณค่าเฉลี่ยของคอลัมน์และลบออกจากคอลัมน์ จากนั้นเราหารค่าคอลัมน์ด้วยค่าเบี่ยงเบนมาตรฐาน

ในเซลล์หมายเลข [118] : เราพิมพ์ข้อมูลที่ทำให้เป็นมาตรฐานระหว่าง -1 ถึง 1

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