Bỏ qua tới nội dung chính
Quay lại tin tức

Mô phỏng dữ liệu chuỗi thời gian cảm biến IoT trong một năm bằng Mimesis

KDnuggets· Iván Palomares Carrascosa· 1/6/2026general

Trong hướng dẫn này, bạn sẽ tìm hiểu quy trình tạo dữ liệu nhiệt độ hàng ngày trong một năm, mô phỏng đường cong theo mùa giống như thực tế — cùng với siêu dữ liệu (metadata) cấp thiết bị và sẵn sàng xây dựng dựa trên các khuôn khổ mã nguồn mở.

Giả lập dữ liệu chuỗi thời gian cảm biến IoT trong một năm với Mimesis - KDnuggets Blog Bài viết hàng đầu Giới thiệu Chủ đề AI Tư vấn nghề nghiệp Thị giác máy tính Kỹ thuật dữ liệu Khoa học dữ liệu Mô hình ngôn ngữ Học máy MLOps NLP Lập trình Python SQL Tập dữ liệu Sự kiện Tài nguyên Tóm tắt kiến thức Đề xuất Báo cáo kỹ thuật Quảng cáo Tham gia Bản tin Giả lập dữ liệu chuỗi thời gian cảm biến IoT trong một năm với Mimesis Trong hướng dẫn này, bạn sẽ tìm hiểu quy trình tạo dữ liệu nhiệt độ hàng ngày trong một năm, mô phỏng đường cong theo mùa trông giống thật — tất cả cùng với siêu dữ liệu cấp thiết bị và sẵn sàng xây dựng dựa trên các framework mã nguồn mở. Bởi Iván Palomares Carrascosa, Chuyên gia nội dung kỹ thuật của KDnuggets vào ngày 1/6/2026 trong Khoa học dữ liệu # Giới thiệu Việc giả lập dữ liệu cảm biến Internet vạn vật (IoT) mà nếu không sẽ khó thu thập ở quy mô lớn có thể là một phương pháp có giá trị để tạo điều kiện thuận lợi cho các phân tích, dự án và nghiên cứu thử nghiệm. Tuy nhiên, điều này đòi hỏi nhiều hơn là chỉ tạo ra các giá trị ngẫu nhiên: nó cần một dòng thời gian theo thứ tự, siêu dữ liệu thiết bị và nhu cầu phản ánh các biến động hoặc mô hình môi trường tự nhiên như tính thời vụ. Mimesis là một công cụ mã nguồn mở tuyệt vời để tạo dữ liệu giả, trong khi một chút toán học có thể được tích hợp vào một giải pháp dựa trên mã để xử lý vấn đề sau: bài viết này sẽ chỉ ra cách thực hiện. Thông qua hướng dẫn từng bước dưới đây, tôi sẽ hướng dẫn bạn quy trình tạo dữ liệu nhiệt độ hàng ngày trong một năm, mô phỏng đường cong theo mùa trông giống thật — tất cả cùng với siêu dữ liệu cấp thiết bị và sẵn sàng xây dựng dựa trên các framework mã nguồn mở. # Hướng dẫn từng bước Chúng ta sẽ dựa vào ba thư viện Python chính để tạo tập hợp dữ liệu cảm biến IoT quanh năm của mình: mimesis để tạo dữ liệu tổng hợp, pandas để xử lý cấu trúc chuỗi thời gian và NumPy để thực hiện một số phép toán, giúp chúng ta mô phỏng các mô hình theo mùa. Lưu ý rằng các tập dữ liệu chuỗi thời gian IoT trong thế giới thực thường gắn liền với một thiết bị cụ thể. Cách để mô phỏng điều này, với sự hỗ trợ của Mimesis, là sử dụng lớp nhà cung cấp Generic và tạo một hồ sơ thiết bị phần cứng thực tế: "cảm biến hư cấu" của chúng ta, có thể nói như vậy. Điều này được thực hiện trước khi tạo các dữ liệu đọc hàng ngày thực tế: import pandas as pd import numpy as np from mimesis import Generic from mimesis.locales import Locale # Khởi tạo một nhà cung cấp chung cho ngôn ngữ tiếng Anh g = Generic(locale=Locale.EN, seed=101) # Tạo siêu dữ liệu tĩnh cho thiết bị IoT giả của chúng ta device_profile = { 'device_id': g.cryptographic.uuid(), 'location': g.address.city(), 'firmware_version': g.development.version(), 'ip_address': g.internet.ip_v4() } print(f"Theo dõi thiết bị: {device_profile['device_id']} đặt tại {device_profile['location']}") Lưu ý rằng device_profile là một từ điển chứa siêu dữ liệu cảm biến hư cấu của chúng ta: mã định danh, vị trí, phiên bản firmware và địa chỉ IP. Nó sẽ trông như sau: Theo dõi thiết bị: e88b7591-31db-4e32-98dc-b35f94c662cd đặt tại Paragould Trước khi tạo chuỗi thời gian, chúng ta sẽ định nghĩa một phương trình để mô phỏng mô hình thời tiết theo mùa, phản ánh nhiệt độ trong suốt một năm. Các hàm lượng giác như hàm sin rất phù hợp để phản ánh kiểu mô hình quanh năm này, trông giống như một sóng hình sin, do đó phương trình của chúng ta sẽ dựa trên một hàm như vậy: \[ T(t) = T_{\text{base}} + A \cdot \sin\left(\frac{2\pi (t - \phi)}{365}\right) + \epsilon \] Trong đó, \(T(t)\) là chỉ số nhiệt độ vào ngày \(t\) trong năm, từ 1 đến 365. Các biến còn lại là thành phần của một sóng hình sin, và quan trọng là, \(\epsilon\) là nhiễu ngẫu nhiên được đưa vào bằng cách sử dụng Mimesis: nếu không có \(\epsilon\), chúng ta sẽ có một sóng hình sin hoàn hảo, trơn tru, điều này không thực tế, vì nhiệt độ trong thế giới thực có những biến động ngắn hạn. Tiếp theo, chúng ta lặp lại trong suốt cả năm, từng ngày, để tạo ra dòng thời gian hàng ngày. pandas sẽ điều khiển quá trình tạo dữ liệu, trong khi mimesis.numeric sẽ được sử dụng để đưa vào không chỉ nhiễu môi trường đã nói ở trên, mà còn cả độ trễ mạng thực tế: một khía cạnh phổ biến trong các thiết bị IoT. Tất cả những điều này được thêm vào phương trình cơ sở toán học đã định nghĩa trước đó. Vai trò của NumPy là áp dụng hàm sin như một phần của quá trình tạo. # 1. Thiết lập các hằng số toán học để mô phỏng nhiệt độ hàng ngày T_base = 15.0 # Nhiệt độ cơ sở tính bằng độ C A = 12.0 # Biến động 12 độ lên/xuống trong suốt cả năm phase_shift = 80 # Dịch chuyển sóng hình sin để đỉnh rơi vào mùa hè # 2. Tạo chuỗi thời gian 365 ngày bắt đầu từ ngày 1/1/2026 dates = pd.date_range(start='2026-01-01', periods=365, freq='D') readings = [] # 3. Lặp qua từng ngày và tính toán các chỉ số for day_index, current_date in enumerate(dates): # Tính toán đường cơ sở của đường cong theo mùa cho ngày cụ thể này seasonal_temp = T_base + A * np.sin(2 * np.pi * (day_index - phase_shift) / 365) # Sử dụng Mimesis để đưa vào biến động/nhiễu phần cứng ngẫu nhiên (ví dụ: -2.0 đến 2.0 độ) sensor_noise = g.numeric.float_number(start=-2.0, end=2.0, precision=2) # Tính toán nhiệt độ cuối cùng được ghi lại final_temp = round(seasonal_temp + sensor_noise, 2) # Biên soạn bản ghi hàng ngày, kết hợp siêu dữ liệu tĩnh với tạo Mimesis động readings.append({ 'timestamp': current_date, 'device_id': device_profile['device_id'], 'location': device_profile['location'], 'temperature_c': final_temp, 'latency_ms': g.numeric.integer_number(start=12, end=145) # Mô phỏng biến động cường độ/độ trễ kết nối mạng mỗi ngày }) # Chuyển đổi thành DataFrame để phân tích df = pd.DataFrame(readings) Như quý vị có thể quan sát,

Nguồn tin: KDnuggets — Tác giả: Iván Palomares Carrascosa. Bản dịch tiếng Việt do AI thực hiện, có thể có sai sót.