Menu
CoddyTech

Nhiều đặc trưng

Thuộc phần Học có giám sát trong hành trình Machine Learning của Coddy. Bài học 12 trên 58.

Giá của một ngôi nhà phụ thuộc vào nhiều yếu tố hơn diện tích: đi bộ xa đến ga sẽ làm giá giảm. Học từ cả hai yếu tố này, mô hình vẽ ra các đường thẳng song song:

Mười ngôi nhà được biểu thị bằng các chấm, giá theo diện tích: những ngôi nhà gần ga có màu xanh dương, những ngôi nhà ở xa là các hình vuông màu cam. Hai đường thẳng song song của mô hình, ứng với quãng đi bộ 5 và 25 phút; đường ứng với 25 phút thấp hơn 102 nghìn đô la ở mọi diện tích

Trong code, X lấy cả hai cột, còn coef_ lấy một trọng số cho mỗi đặc trưng:

X = houses[["area_m2", "minutes_walk"]]
model = LinearRegression()
model.fit(X, houses["price"])
print(np.round(model.coef_, 1))

Kết quả in ra:

[ 2.6 -5.1]

Các trọng số tương ứng với các cột của X. Mỗi m² tăng thêm làm giá tăng 2,6 nghìn đô la; mỗi phút đi bộ tăng thêm làm giá giảm 5,1 nghìn đô la, khi giữ nguyên đặc điểm còn lại.

Đơn vị của trọng số là đơn vị mục tiêu trên mỗi đơn vị đặc trưng: nghìn trên mỗi m², trên mỗi phút.

challenge icon

Thử thách

Trung bình

Một đơn vị cung cấp dịch vụ ăn uống báo giá cho các sự kiện mới dựa trên 40 sự kiện trước đó trong events.csv: guests, courses, months_ahead (đặt trước sớm bao lâu) và cost tính bằng đô la. Đoạn code khởi đầu đọc thông tin sự kiện mới vào new_event.

  1. Huấn luyện một mô hình LinearRegression dự đoán chi phí dựa trên các features.
  2. Với mỗi đặc trưng, in ra số tiền tăng thêm hoặc giảm đi khi tăng một đơn vị (2 chữ số thập phân).
  3. In báo giá cho sự kiện mới (2 chữ số thập phân).

Với một đơn vị cung cấp dịch vụ ăn uống khác:

Each extra guest adds 41.5 dollars
Each extra course adds 198.25 dollars
Each extra month booked ahead takes off 22.8 dollars
Quote: 4312.6 dollars

Tự làm thử

import numpy as np
import pandas as pd
from sklearn.linear_model import LinearRegression

# Mỗi sự kiện trước đây chiếm một hàng: số khách, số món ăn, số tháng đặt trước, chi phí tính bằng đô la
events = pd.read_csv("events.csv")
features = ["guests", "courses", "months_ahead"]
units = ["guest", "course", "month booked ahead"]
# Sự kiện mới dưới dạng bảng có một hàng
guests = int(input())
courses = int(input())
months = int(input())
new_event = pd.DataFrame({"guests": [guests], "courses": [courses], "months_ahead": [months]})

# Viết code bên dưới
quiz iconTự kiểm tra

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 Học có giám sát

Tự luyện tập: Trình biên dịch Python online