Phép broadcasting
Thuộc phần Dữ liệu và biểu đồ trong hành trình Machine Learning của Coddy. Bài học 13 trên 60.
Mô hình học tốt hơn khi mỗi đặc trưng có giá trị gần 0. Vì vậy, bạn trừ giá trị trung bình của mỗi cột khỏi từng giá trị trong cột đó, rồi NumPy sao chép các giá trị trung bình xuống từng hàng:
Trong code, với chiều cao và cân nặng của ba người:
data = np.array([[170, 60],
[180, 80],
[160, 70]])
print(data - data.mean(axis=0))Kết quả in ra:
[[ 0. -10.]
[ 10. 10.]
[-10. 0.]]Việc sao chép đó là phát tán. Bảng hiện đã được căn giữa: mỗi giá trị cho biết nó cách giá trị trung bình của cột bao xa.
Trung bình có dạng (2,): mỗi cột trong bảng (3, 2) có một giá trị. Mọi độ dài khác đều gây ra lỗi.
Thử thách
DễỨng dụng thể dục đưa mỗi bảng về tâm trước khi huấn luyện. Code khởi đầu gọi center trên hai bảng, users (3 đặc trưng) và workouts (2), rồi in ra kết quả. Hiện tại, center trả về bảng không thay đổi.
Hoàn thiện center để hàm trừ giá trị trung bình của mỗi cột khỏi cột đó, với số cột bất kỳ. Giữ nguyên các dòng bên dưới hàm.
Với hai người dùng và hai buổi tập, đầu ra sẽ trông như sau:
Centered users:
[[-6. 7. -5.]
[ 6. -7. 5.]]
Column means after centering: [0. 0. 0.]
Centered workouts:
[[-10. -90.]
[ 10. 90.]]
Column means after centering: [0. 0.]Tự làm thử
import numpy as np
def center(table):
# Trả về bảng sau khi trừ mỗi cột đi giá trị trung bình của cột đó
# Viết code của bạn bên dưới
return table
# Mỗi hàng ứng với một người dùng: tuổi, nhịp tim khi nghỉ, số phút tập thể dục mỗi ngày
users = np.array([[25, 62, 30],
[31, 70, 45],
[40, 58, 20],
[29, 66, 25]])
# Mỗi hàng ứng với một buổi tập: số phút, lượng calo đã đốt cháy
workouts = np.array([[30, 240],
[45, 410],
[20, 150],
[60, 520],
[35, 300]])
# Đừng thay đổi các dòng bên dưới
print("Centered users:")
print(center(users))
print("Column means after centering:", np.round(center(users).mean(axis=0), 2))
print("Centered workouts:")
print(center(workouts))
print("Column means after centering:", np.round(center(workouts).mean(axis=0), 2))
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Dữ liệu và biểu đồ
5Biểu đồ đường và biểu đồ phân tán
Nhãn và tiêu đềBiểu đồ phân tánNhiều đường và chú giảiMàu sắc và dấu đánh dấuHình và trụcÔn tập: Số bước mỗi tuần11Bộ dữ liệu dành cho ML
Bộ dữ liệu có sẵnĐặc trưng và nhãnKhám phá theo lớpVẽ biểu đồ các lớpÔn tập: bộ dữ liệu Wine3Phép toán với mảng
Phép toán trên toàn bộ mảngThống kê tổng hợpThống kê theo trụcPhép broadcastingMặt nạ BooleanÔn tập: Điểm thi6Biểu đồ dữ liệu
Biểu đồ cộtBiểu đồ tần suấtNhiều biểu đồ trong một hìnhHình ảnh dưới dạng mảngÔn tập: Báo cáo lượng mưa9Nhóm và làm sạch dữ liệu
Đếm giá trịNhóm dữ liệuNhiều phép tổng hợpGiá trị thiếuÔn tập: Kết quả khảo sát12Thử thách cuối cùng
Báo cáo doanh sốSố liệu cảm biếnCác chữ số trong nháy mắtNhà thám hiểm chim cánh cụtTự luyện tập: Trình biên dịch Python online