Lợi nhuận:
- Khả năng thiết lập quy trình phân tích lặp lại để tải và làm sạch dữ liệu đo từ xa, kiểm tra và sản xuất bằng gấu trúc
- Khả năng hiểu và xác minh từng dòng đầu ra trong khi nhận mã, thuộc tính và hỗ trợ trực quan từ trí tuệ nhân tạo
- Khả năng kiểm tra kết quả phân tích về tính nhất quán của đơn vị, rò rỉ dữ liệu và khả năng tái tạo
Ở các đơn vị trước, chúng tôi sử dụng trí tuệ nhân tạo như một “cố vấn”. Trong phần này, chúng ta tiến thêm một bước nữa và thiết lập quy trình làm việc tự tay phân tích dữ liệu ô tô bằng cách sử dụng Python. Mục tiêu không phải là biến bạn thành nhà phát triển phần mềm; Đó là tạo ra một kỹ sư có thể hiểu và xác minh từng dòng mã đó trong khi nhận được hỗ trợ mã từ AI. Bởi vì mã do AI tạo ra có thể bị lỗi, giống như văn bản do AI tạo ra; có thể gây nhầm lẫn về khối lượng, rò rỉ dữ liệu, cột sai ở giữa. Chạy mã mà không hiểu nó giống như xuất bản một báo cáo chưa được ký.
Python tại sao? Bởi vì đây là tiêu chuẩn thực tế trong phân tích dữ liệu: bạn có thể dễ dàng xử lý dữ liệu đo từ xa, kiểm tra và sản xuất với các thư viện pandas (dữ liệu dạng bảng), numpy (xử lý số), matplotlib (cốt truyện) và scikit-learn (học máy).
Sáu bước để phân tích tái sản xuất
Một phân tích vững chắc luôn tuân theo cùng một khuôn khổ:
- Load: Đọc dữ liệu từ file.
- Kiểm tra: Thứ nguyên, cột, kiểu dữ liệu, giá trị còn thiếu.
- Sạch: Thiếu/ngoại lệ, đơn vị, hiệu chỉnh dấu thời gian.
- Tính năng trích xuất: Rút ra các biến có ý nghĩa.
- Phân tích/mô hình: Thống kê, trực quan hóa hoặc mô hình.
- Xác minh và báo cáo: Cung cấp kết quả, kiểm tra khối lượng/rò rỉ, ghi chép.
Mẹo: Khi yêu cầu AI viết mã, hãy nói “nhận xét những gì bạn đang làm ở mỗi bước và viết các giả định của mình”. Vì vậy, bạn có thể xác minh mã khi bạn đọc nó.
Ví dụ từng bước: phân tích đo từ xa
Đoạn mã sau tải bản ghi CAN/đo từ xa và thực hiện kiểm tra cơ bản. (Lưu ý: đảm bảo bạn hiểu mã trước khi chạy chúng; tên cột khác nhau tùy thuộc vào dữ liệu của bạn.)
nhập gấu trúc dưới dạng pd# 1) Tải: CSV nửa chấm, cột đầu tiên timetampdf = pd.read_csv("telemetry.csv", parse_dates=["time"])# 2) Checkprint(df.shape) # có bao nhiêu hàng, bao nhiêu cộtprint(df.dtypes) # loại của mỗi cột (số hoặc văn bản)print(df.isna().sum()) # số lượng giá trị bị thiếu trên mỗi columprint(df.describe()) # thống kê tóm tắt: tối thiểu, tối đa, trung bình
Đầu ra mô tả() là cơ hội đầu tiên để bạn xác minh: nếu giá trị tối đa của tốc độ động cơ là 45.000 vòng/phút (động cơ chở khách thông thường ~7.000 vòng/phút), thì đã xảy ra lỗi bộ phận hoặc cảm biến.
Các lệnh pandas được sử dụng thường xuyên nhất trong bước kiểm tra và chức năng của chúng:
lệnh
làm gì
Nó xác nhận điều gì?
df.shape
Số hàng/cột
Đây có phải là kích thước dự kiến?
df.dtypes
Các loại cột
Cột số có trở thành văn bản không?
df.isna().sum()
Thiếu giá trị đếm
Có bao nhiêu không gian?
df.describe()
Tối thiểu/tối đa/trung bình
Nó có hợp lý về mặt vật lý không?
df.duplicate().sum()
hàng trùng lặp
Có đăng ký kép không?
#3) Clear: đánh dấu các giá trị vật lý không thể thực hiện được
Thận trọng: Không xóa ngoại lệ ngay lập tức; Đầu tiên hãy hiểu tại sao nó là một ngoại lệ. Đây có phải là sự cố thực sự (nóng đột ngột) hoặc lỗi cảm biến? Xóa một cách mù quáng có thể che giấu lỗi thực sự.
# 4) Tính năng trích xuất: tốc độ tăng nhiệt độ (phái sinh)df = df.sort_values("time")df["sic_increase_speed"] = df["motor_sic"].diff() / df["time"].diff().dt.total_seconds()# 5) Trực quan hóa đơn giảnnhập matplotlib.pyplot dưới dạng pltplt.plot(df["time"], df["motor_sic"])plt.xlabel("Thời gian"); plt.ylabel("Nhiệt độ động cơ (C)")plt.title("Khóa nhiệt độ động cơ")plt.show()
Ngăn chặn rò rỉ dữ liệu trong Python
Sai lầm nguy hiểm nhất khi xây dựng mô hình dự đoán là rò rỉ dữ liệu (đơn vị 5): khi mô hình nhìn thấy những thông tin không thể biết được tại thời điểm dự đoán. Nguyên tắc vàng để tránh điều này trong chuỗi thời gian: luyện tập với quá khứ, kiểm tra tương lai - không xáo trộn ngẫu nhiên.
from sklearn.model_selection import train_test_split# FALSE: chia ngẫu nhiên chuỗi thời gian rò rỉ tương lai# df[df["time"] > ngưỡng] # tương lai 20% cuối cùng
Thận trọng: train_test_split xáo trộn dữ liệu theo mặc định (shuffle=True). Trong chuỗi thời gian, điều này làm nhầm lẫn tương lai với giáo dục và tạo ra điểm cao sai. Nếu AI đã làm điều này trong mã mà nó tạo ra, hãy nhớ sửa nó.
Tính nhất quán của đơn vị: kẻ giết người thầm lặng
Các lỗi nguy hiểm nhất trong ô tô là lỗi đơn vị: km/h sang m/s, Nm sang lb-ft, bar sang kPa, ° C đến K. Giữ một từ điển về đơn vị của mỗi cột trong quá trình phân tích và viết ra các chuyển đổi rõ ràng sẽ cứu được mạng sống.
# Ghi lại đơn vị một cách rõ ràng = {"speed": "km/h", "motor_sic": "C", "áp lực": "bar"}# Chuyển đổi rõ ràng nếu cần thiết (km/h -> m/s)df["speed_ms"] = df["speed"] / 3.6
Nghiên cứu trường hợp nhỏ
Trường hợp 1 - Lỗi xảy ra với mô tả(). Một nhà phân tích chạy mã từ AI và đưa ra ước tính phạm vi; Kết quả là cao một cách vô lý. Khi nhìn vào đầu ra mô tả(), chúng ta thấy rằng dung lượng pin được nhập bằng Wh ở một số dòng và tính bằng kWh ở những dòng khác (chênh lệch 1000 lần). Khi thiết bị được đưa về loại đồng nhất, kết quả sẽ được cải thiện. Kết luận: Một thống kê tóm tắt đơn giản đã ngăn chặn một dự đoán xấu.
Trường hợp 2 - Bẫy nhầm lẫn. Mô hình độ mòn phanh của một thực tập sinh có độ chính xác 98% trong bộ thử nghiệm. Khi kiểm tra mã, có thể thấy rằng train_test_split(shuffle=True) và chuỗi thời gian được trộn lẫn, có nghĩa là các điểm trong tương lai sẽ bị rò rỉ vào quá trình đào tạo. Khi chia theo thời gian, độ chính xác giảm xuống còn 80%, nhưng hiện tại nó đã trở thành hiện thực. Kết luận: Chỉ vì mã AI hoạt động nên nó không đúng; Con người bắt được rò rỉ.
Trường hợp 3 - Hiểu về ngoại lệ. Trong bản ghi độ bền, mã AI sẽ tự động xóa các giá trị biến dạng ngoại lệ. Người kỹ sư xem xét các điểm đã xóa; Đây chính xác là những thời điểm bắt đầu crack mà bài kiểm tra quan tâm. Việc xóa sẽ bị xóa và các vi phạm sẽ được xem xét riêng. Kết quả: Trong phần "Dọn dẹp", tín hiệu thực có thể bị xóa; hỏi từng bước.
mẫu lời nhắc
Mẫu 1 - Mã yêu cầu (có giải thích):
Vai trò: Bạn là cố vấn phân tích dữ liệu Python. Nhiệm vụ: Viết mã tải và kiểm tra CSV đo từ xa. Bối cảnh: Các cột: thời gian, tốc độ (km/h), engine_sic(C), Revolution(rpm).Ràng buộc: Nhận xét từng hàng; Giải thích việc kiểm tra nào đã được thực hiện và tại sao; thêm kiểm tra giá trị vật lý không thể thực hiện được; âm thầm xóa không có gì.Đầu ra: Mã nhận xét + đầu ra nào tôi nên xem xét và tại sao.
Mẫu 2 - Kiểm tra rò rỉ:
Vai trò: Bạn là người đánh giá mã máy học. Nhiệm vụ: Kiểm tra mã phân tách đào tạo/kiểm tra sau đây để phát hiện rò rỉ dữ liệu. Bối cảnh: Đây là chuỗi thời gian (đo từ xa phương tiện). Ràng buộc: Cảnh báo nếu có sự xáo trộn ngẫu nhiên; Đề xuất và biện minh cho việc chia theo thời gian. Đầu ra: Kết quả + mã đã sửa + giải thích.
Mẫu 3 - Xác thực đơn vị:
Vai trò: Bạn là người kiểm tra chất lượng dữ liệu. Nhiệm vụ: Đề xuất các bước kiểm tra để tìm sự không nhất quán của đơn vị trong DataFrame. Bối cảnh: Công suất có thể là kWh ở một số hàng và Wh ở các hàng khác. Đầu ra: Kiểm tra mã + cách tìm mẫu đáng ngờ.
Mẫu 4 - Trực quan hóa + nhận xét:
Vai trò: Bạn là chuyên gia trực quan hóa dữ liệu. Nhiệm vụ: Viết mã vẽ biểu đồ diễn biến và tốc độ tăng nhiệt độ của động cơ. Ràng buộc: Dán nhãn các trục bằng đơn vị; đánh dấu trực quan sự bất thường; không tuyên bố lỗi dứt khoát khi giải thích biểu đồ. Đầu ra: Mã + nội dung cần tìm trong biểu đồ.
Dấu nhắc yếu / Dấu nhắc mạnh
Dấu nhắc yếu:
Xây dựng một mô hình với dữ liệu này.
Không rõ mục tiêu nào, ngăn nào, xác minh nào; AI có thể xuất ra mã bị xáo trộn, rò rỉ, mù đơn vị.
Lời nhắc mạnh mẽ:
Vai trò: Bạn là cố vấn Python ML. Nhiệm vụ: Viết quy trình công việc ban đầu để dự đoán độ mòn của má phanh và chứng minh những cạm bẫy khi xác nhận. Bối cảnh: Đo từ xa chuỗi thời gian; mục tiêu: độ dày miếng đệm còn lại. Ràng buộc: Chia chuỗi thời gian theo thời gian (không xáo trộn); gắn cờ các thuộc tính có nguy cơ rò rỉ dữ liệu; đơn vị tài liệu; diễn giải từng bước; Viết ra những bước kiểm tra cần thiết trước khi kết quả được đưa ra hiện trường. Đầu ra: Mã nhận xét + danh sách kiểm tra xác minh.
Những lỗi thường gặp
- Chạy mã mà không hiểu nó. Mã AI cũng có thể bị lỗi; Đọc từng dòng một.
- Trộn chuỗi thời gian. shuffle=True rò rỉ tương lai và tạo ra điểm giả.
- Xóa một cách mù quáng các ngoại lệ. Tín hiệu thực tế (khởi động lỗi) có thể bị xóa.
- Không ghi lại đơn vị. Các lỗi như km/h so với m/s, Wh vs kWh tăng dần.
- Bỏ qua bước mô tả()/kiểm tra. Hầu hết các lỗi xuất hiện trong số liệu thống kê tóm tắt đầu tiên.
Tóm lại
- Python (pandas, numpy, matplotlib, scikit-learn) là tiêu chuẩn thực tế của phân tích dữ liệu ô tô.
- Phân tích lặp lại: tải, kiểm tra, làm sạch, tính năng, phân tích, xác nhận và báo cáo.
- Bắt buộc phải hiểu và xác minh mã mà AI tạo ra từng dòng một; Chỉ vì nó hoạt động không có nghĩa là nó đúng.
- Duy trì sự khác biệt trong quá khứ/tương lai trong chuỗi thời gian; Việc xáo trộn ngẫu nhiên tạo ra rò rỉ dữ liệu.
- Tính nhất quán của đơn vị và cách giải thích ngoại lệ là những điểm xác minh thầm lặng nhưng quan trọng.
Nhiệm vụ ứng dụng
Lấy một tập dữ liệu nhỏ (đo từ xa thực hoặc tổng hợp). (1) Thực hiện theo khung sáu bước, tạo mã tải và kiểm soát bằng Mẫu 1 và xác nhận rằng bạn hiểu từng dòng. (2) Tìm ít nhất một giá trị đáng ngờ trong đầu ra mô tả() và điều tra lý do. (3) Trong nhiệm vụ dự đoán, hãy tính thời gian phân chia đào tạo/kiểm tra và kiểm tra nguy cơ rò rỉ bằng Mẫu 2. (4) Ghi lại đơn vị của mỗi cột bạn sử dụng trong từ điển.
danh sách kiểm tra
- [ ] Tôi thiết lập phân tích bằng khung sáu bước.
- [ ] Tôi đã đọc và hiểu từng dòng code do AI tạo ra.
- [ ] Tôi đã tìm kiếm các giá trị đáng ngờ bằng mô tả()/audit.
- [ ] Tôi chia chuỗi thời gian theo thời gian (không xáo trộn).
- [ ] Tôi đã đánh dấu các thuộc tính có nguy cơ rò rỉ dữ liệu.
- [ ] Tôi đã ghi lại đơn vị của mỗi cột và viết các chuyển đổi một cách rõ ràng.