วิธีทำให้ข้อมูลเป็นมาตรฐานใน python


บ่อยครั้งในสถิติและการเรียนรู้ของเครื่อง เราทำให้ตัวแปร เป็นมาตรฐาน โดยช่วงของค่าอยู่ระหว่าง 0 ถึง 1

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

เมื่อมีการวัดตัวแปรในระดับที่แตกต่างกัน ตัวแปรเหล่านั้นมักจะไม่ได้มีส่วนช่วยในการวิเคราะห์อย่างเท่าเทียมกัน ตัวอย่างเช่น หากค่าของตัวแปรหนึ่งมีค่าตั้งแต่ 0 ถึง 100,000 และค่าของตัวแปรอื่นมีตั้งแต่ 0 ถึง 100 ตัวแปรที่มีช่วงมากกว่าจะถูกกำหนดให้มีน้ำหนักมากขึ้นในการวิเคราะห์

ด้วยการกำหนดตัวแปรให้เป็นมาตรฐาน เรามั่นใจได้ว่าแต่ละตัวแปรมีส่วนช่วยในการวิเคราะห์อย่างเท่าเทียมกัน

ในการทำให้ค่าระหว่าง 0 ถึง 1 เป็นปกติเราสามารถใช้สูตรต่อไปนี้:

x ปกติ = (x i – x min ) / (x สูงสุด – x min )

ทอง:

  • x norm : ค่า ที่ ทำให้เป็นมาตรฐานในชุดข้อมูล
  • x i : ค่า ที่ i ของชุดข้อมูล
  • x max : ค่าต่ำสุดในชุดข้อมูล
  • x min : ค่าสูงสุดในชุดข้อมูล

ตัวอย่างต่อไปนี้แสดงวิธีการทำให้ตัวแปรตั้งแต่หนึ่งตัวขึ้นไปเป็นมาตรฐานใน Python

ตัวอย่างที่ 1: ทำให้อาร์เรย์ NumPy เป็นมาตรฐาน

รหัสต่อไปนี้แสดงวิธีทำให้ค่าทั้งหมดในอาร์เรย์ NumPy เป็นมาตรฐาน:

 import numpy as np 

#create NumPy array
data = np. array ([[13, 16, 19, 22, 23, 38, 47, 56, 58, 63, 65, 70, 71]])

#normalize all values in array
data_norm = (data - data. min ())/ (data. max () - data. min ())

#view normalized values
data_norm

array([[0. , 0.05172414, 0.10344828, 0.15517241, 0.17241379,
        0.43103448, 0.5862069, 0.74137931, 0.77586207, 0.86206897,
        0.89655172, 0.98275862, 1. ]])

แต่ละค่าในอาร์เรย์มาตรฐานขณะนี้อยู่ระหว่าง 0 ถึง 1

ตัวอย่างที่ 2: ทำให้ตัวแปรทั้งหมดใน Pandas DataFrame เป็นมาตรฐาน

รหัสต่อไปนี้แสดงวิธีการทำให้ตัวแปรทั้งหมดใน DataFrame ของแพนด้าเป็นปกติ:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' points ': [25, 12, 15, 14, 19, 23, 25, 29],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]})

#normalize values in every column
df_norm = (df-df. min ())/ (df. max () - df. min ())

#view normalized DataFrame
df_norm

        points assists rebounds
0 0.764706 0.125 0.857143
1 0.000000 0.375 0.428571
2 0.176471 0.375 0.714286
3 0.117647 0.625 0.142857
4 0.411765 1.000 0.142857
5 0.647059 0.625 0.000000
6 0.764706 0.625 0.571429
7 1.000000 0.000 1.000000

แต่ละค่าในแต่ละคอลัมน์ขณะนี้อยู่ระหว่าง 0 ถึง 1

ตัวอย่างที่ 3: ปรับตัวแปรเฉพาะให้เป็นมาตรฐานใน Pandas DataFrame

รหัสต่อไปนี้แสดงวิธีการทำให้ตัวแปรเฉพาะเป็นมาตรฐานใน Pandas DataFrame:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' points ': [25, 12, 15, 14, 19, 23, 25, 29],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]})

define columns to normalize
x = df. iloc [:,0:2]

#normalize values in first two columns only
df. iloc [:,0:2] = (xx. min ())/ (x. max () - x. min ())

#view normalized DataFrame
df

	points assists rebounds
0 0.764706 0.125 11
1 0.000000 0.375 8
2 0.176471 0.375 10
3 0.117647 0.625 6
4 0.411765 1.000 6
5 0.647059 0.625 5
6 0.764706 0.625 9
7 1.000000 0.000 12

โปรดทราบว่าเฉพาะค่าในสองคอลัมน์แรกเท่านั้นที่ถูกทำให้เป็นมาตรฐาน

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้ให้ข้อมูลเพิ่มเติมเกี่ยวกับการทำให้ข้อมูลเป็นมาตรฐาน:

วิธีทำให้ข้อมูลเป็นมาตรฐานระหว่าง 0 ถึง 1
วิธีทำให้ข้อมูลเป็นมาตรฐานระหว่าง 0 ถึง 100
การทำให้เป็นมาตรฐานหรือการทำให้เป็นมาตรฐาน: อะไรคือความแตกต่าง?

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *