Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การ Normalize ข้อมูลเพื่อทำนายประสิทธิภาพเชื้อเพลิง Auto MPG ด้วย TensorFlow


บทนำ

TensorFlow เฟรมเวิร์ก ML จาก Google โค้ดเปิด ใช้กับ Python

การติดตั้ง

pip install tensorflow

Tensor และปัญหา Regression

เทนเซอร์ = อาร์เรย์หลายมิติ สำหรับ Data flow graph ทำนายตัวแปรต่อเนื่อง

ชุดข้อมูล Auto MPG

ข้อมูลรถยนต์ยุค 70-80s คุณสมบัติ: น้ำหนัก แรงม้า ปริมาตรเครื่องยนต์ ฯลฯ ทำนาย MPG

ตัวอย่าง: การแยก Label, สถิติ และ Normalization

print("แยก Label จาก Features")
train_features = train_dataset.copy()
test_features = test_dataset.copy()
train_labels = train_features.pop('MPG')
test_labels = test_features.pop('MPG')

print("ค่าเฉลี่ยและสถิติคลาดเคลื่อนของข้อมูลฝึก:")
train_dataset.describe().transpose()[['mean', 'std']]

print("Normalize features เนื่องจากสเกลต่างกัน")
print("สร้างเลเยอร์ Normalization")
normalizer = preprocessing.Normalization()
normalizer.adapt(np.array(train_features))
print(normalizer.mean.numpy())

first = np.array(train_features[3:4])
print("ทุก features ถูก normalize แยกกัน")
with np.printoptions(precision=2, suppress=True):
    print('ตัวอย่างแรก:', first)
    print()
    print('ข้อมูลหลัง Normalize:', normalizer(first).numpy())

ที่มา: TensorFlow Regression Tutorial

ผลลัพธ์

แยก Label จาก Features
ค่าเฉลี่ยและสถิติคลาดเคลื่อนของข้อมูลฝึก:
Normalize features เนื่องจากสเกลต่างกัน
สร้างเลเยอร์ Normalization
[ 5.467 193.847 104.135 2976.88 15.591 75.934 0.168 0.197 0.635]
ทุก features ถูก normalize แยกกัน
ตัวอย่างแรก: [[ 4. 105. 63. 2125. 14.7 82. 0. 0. 1. ]]
Normalize data: [[-0.87 -0.87 -1.11 -1.03 -0.33 1.65 -0.45 -0.5 0.76]]

คำอธิบาย

  • แยกค่าเป้าหมาย (Label) ออกจาก Features
  • Label คือค่าที่ต้องฝึกเพื่อการทำนาย
  • Normalize features เพื่อให้การฝึกเสถียร
  • ฟังก์ชัน Normalization ใน TensorFlow เตรียมข้อมูลล่วงหน้า
  • สร้างเลเยอร์แรก เก็บ mean และ variance
  • เมื่อเรียกเลเยอร์นี้ จะคืนข้อมูลที่ทุก feature ถูก normalize แล้ว