\chapter{Triển khai Thực nghiệm và Đánh giá Kết quả}
\label{chap:trienkhai}

Chương này trình bày chi tiết quy trình xây dựng hệ thống dự báo nhu cầu nước tưới. Nội dung bao gồm việc lựa chọn phạm vi dữ liệu, phân tích đặc điểm khí tượng, các bước tiền xử lý và thiết kế quy trình thuật toán lõi kết hợp giữa học máy và kiến thức nông học.

\section{Mô tả và phân tích dữ liệu}

\subsection{Nguồn dữ liệu và Phạm vi nghiên cứu}
Đồ án sử dụng bộ dữ liệu Sri Lanka Weather Dataset (giai đoạn 2010 - 2023). Trong phạm vi nghiên cứu thực nghiệm của đồ án, dữ liệu tại thành phố \textbf{Colombo} được lựa chọn làm đại diện để huấn luyện và kiểm thử mô hình.

Lý do lựa chọn:
\begin{itemize}
    \item \textbf{Đặc điểm khí hậu:} Colombo là khu vực có khí hậu nhiệt đới gió mùa điển hình, có tính tương đồng cao với điều kiện thời tiết tại các vựa nông sản lớn của Việt Nam.
    \item \textbf{Chất lượng dữ liệu:} Đây là trạm quan trắc chính với dữ liệu đầy đủ, ít nhiễu và không bị gián đoạn trong chuỗi thời gian dài (13 năm), đảm bảo tính liên tục cho các thuật toán học máy.
\end{itemize}

\subsection{Các đặc trưng dữ liệu}
Dựa trên cơ sở lý thuyết về sự bốc thoát hơi nước (quá trình vật lý chịu ảnh hưởng bởi nhiệt, nắng và gió), đồ án đã thực hiện trích chọn đặc trưng. Bộ dữ liệu đầu vào cho mô hình bao gồm 9 biến khí tượng quan trọng, được tóm tắt trong Bảng \ref{tab:input_features}.

\begin{table}[H]
    \centering
    \caption{Danh sách các biến đầu vào và biến mục tiêu của mô hình (Dữ liệu Colombo)}
    \label{tab:input_features}
    \begin{tabular}{|p{0.7cm}|p{5.5cm}|p{6.5cm}|p{1.5cm}|}
        \hline
        \textbf{STT} & \textbf{Nhóm thuộc tính} & \textbf{Chi tiết các biến (Variables)} & \textbf{Vai trò} \\ \hline
        1 & Temperature (2m) \newline (Nhiệt độ không khí) & Bao gồm 3 biến đo tại độ cao 2m: \newline - \texttt{temperature\_2m\_max} \newline - \texttt{temperature\_2m\_min} \newline - \texttt{temperature\_2m\_mean} & Input ($X$) \\ \hline
        
        2 & Apparent Temperature \newline (Nhiệt độ cảm nhận) & Bao gồm 3 biến phản ánh nhiệt độ thực tế cảm nhận (kết hợp yếu tố độ ẩm): \newline - \texttt{apparent\_temperature\_max} \newline - \texttt{apparent\_temperature\_min} \newline - \texttt{apparent\_temperature\_mean} & Input ($X$) \\ \hline
        
        3 & Wind (10m) \newline (Thông số gió) & Bao gồm 2 biến đo tại độ cao 10m: \newline - \texttt{windspeed\_10m\_max} (Tốc độ gió) \newline - \texttt{windgusts\_10m\_max} (Gió giật) & Input ($X$) \\ \hline
        
        4 & Radiation \newline (Bức xạ) & - \texttt{shortwave\_radiation\_sum} \newline (Tổng xạ mặt trời sóng ngắn trong ngày) & Input ($X$) \\ \hline
        
        5 & Evapotranspiration \newline (Bốc thoát hơi nước) & - \texttt{et0\_fao\_evapotranspiration} \newline (Giá trị $ET_0$ tham chiếu theo dựa trên phương trình Penman-Monteith của FAO) & Target ($Y$) \\ \hline
    \end{tabular}
\end{table}

% \textbf{Nhận xét:} Việc đưa thêm nhóm biến \textit{Apparent Temperature} (Nhiệt độ cảm nhận) bên cạnh nhiệt độ thông thường là một cải tiến so với các mô hình truyền thống, vì biến này gián tiếp chứa thông tin về độ ẩm và cảm giác nhiệt, giúp mô hình Random Forest phát hiện tốt hơn các mẫu hình phi tuyến ảnh hưởng đến $ET_0$.
% \section{Phân tích và Tiền xử lý dữ liệu}

\subsection{Thống kê mô tả dữ liệu}

Để hiểu rõ đặc điểm phân phối của các biến khí tượng đầu vào, đồ án thực hiện thống kê mô tả trên bộ dữ liệu tại trạm Colombo (4916 mẫu quan trắc). Bảng \ref{tab:descriptive_stats} tóm tắt các tham số thống kê quan trọng bao gồm giá trị trung bình (Mean), độ lệch chuẩn (Std), giá trị nhỏ nhất (Min) và lớn nhất (Max).

\begin{table}[H]
    \centering
    \caption{Thống kê mô tả các biến khí tượng chính (Giai đoạn 2010 - 2023)}
    \label{tab:descriptive_stats}
    \begin{tabular}{|l|c|c|c|c|c|}
        \hline
        \textbf{Biến số (Variables)} & \textbf{Count} & \textbf{Mean} & \textbf{Std Dev} & \textbf{Min} & \textbf{Max} \\ \hline
        Temperature Mean ($^\circ C$) & 4916 & 26.72 & 0.96 & 21.20 & 29.90 \\ \hline
        Apparent Temp Mean ($^\circ C$) & 4916 & 31.44 & 1.48 & 21.60 & 35.90 \\ \hline
        Solar Radiation ($MJ/m^2$) & 4916 & 17.81 & 4.02 & 1.76 & 26.51 \\ \hline
        Wind Speed Max ($km/h$) & 4916 & 14.32 & 4.30 & 4.50 & 39.40 \\ \hline
    \end{tabular}
\end{table}

\textbf{Nhận xét và Đánh giá dữ liệu:}
\begin{itemize}
    \item \textbf{Về Nhiệt độ:} Nhiệt độ trung bình đạt $26.7^\circ C$ với độ lệch chuẩn thấp ($\approx 0.96$), biên độ dao động hẹp (từ $21.2^\circ C$ đến $29.9^\circ C$). Điều này phản ánh tính chất ổn định của khí hậu nhiệt đới tại Colombo, thuận lợi cho việc canh tác cà chua quanh năm.
    \item \textbf{Về Bức xạ mặt trời:} Biến động khá mạnh (Std $\approx 4.02$), trải rộng từ $1.76$ (những ngày mưa bão/âm u) đến $26.51$ (nắng gắt). Đây là yếu tố biến thiên chính dẫn đến sự thay đổi nhu cầu nước $ET_0$ giữa các ngày.
    \item \textbf{Về Gió:} Tốc độ gió trung bình khoảng $14.32 km/h$, tuy nhiên có những ngày đạt cực đại tới $39.4 km/h$. Các giá trị cực đoan này (Max) là thông tin quan trọng mà mô hình cần học để dự báo các đợt bốc thoát hơi nước đột biến.
    \item \textbf{Nhiệt độ cảm nhận (Apparent Temp):} Cao hơn nhiệt độ thực đo khoảng $5^\circ C$ (Mean $31.44$ so với $26.72$). Sự chênh lệch này gián tiếp cho thấy độ ẩm tại khu vực nghiên cứu thường xuyên ở mức cao, ảnh hưởng đến khả năng thoát hơi nước tự nhiên của cây.
\end{itemize}

\section{Triển khai huấn luyện mô hình}
\label{sec:experiment_results}

        Mục này trình bày chi tiết quy trình huấn luyện mô hình Random Forest, đánh giá độ chính xác của dự báo $ET_0$ và kiểm chứng hiệu quả của thuật toán tưới bù trên các kịch bản thực tế.
        
        \subsection{Thiết lập Dữ liệu và Cấu hình Mô hình}
        
        Để đảm bảo chất lượng đầu vào cho mô hình, quá trình tiền xử lý dữ liệu được thực hiện qua các bước:
        \begin{itemize}
            \item Làm sạch và Lựa chọn đặc trưng: Loại bỏ các điểm dữ liệu nhiễu/thiếu. Giữ lại 9 biến đầu vào quan trọng nhất được giữ lại:
            \item Chuẩn hoá dữ liệu: Chuẩn hoá dữ liệu bằng phương pháp Min-Max. Mục tiêu của phương pháp này là giá trị của các biến được biến đổi sao cho thuộc vào một khoảng giá trị từ $[0;1]$. Phương pháp này giúp thống nhất phạm vi của dữ liệu, đảm bảo tính đồng nhất và giảm thiểu ảnh hưởng của các biến có giá trị lớn đến quá trình xử lý và phân tích dữ liệu.
            \item Phân chia tập dữ liệu: Đồ án thực hiện phân chia dữ liệu theo trục thời gian để đảm bảo tính khách quan và mô phỏng đúng bài toán dự báo tương lai:
            \begin{itemize}
                \item Tập Huấn luyện: Dữ liệu từ năm 2010 đến 2020, bao gồm 4018 điểm dữ liệu chiếm 82\% bộ dữ liệu
                \item Tập Kiểm thử Dữ liệu từ năm 2021 đến 2023, bao gồm 898 điểm dữ liệu chiếm 18\% bộ dữ liệu
            \end{itemize}
        \end{itemize}
        \subsection{Dự báo bằng mô hình Random Forest}
        Random Forest là một thuật toán học máy thuộc nhóm Học tập kết hợp (Ensemble Learning), cụ thể là phương pháp Bagging (Bootstrap Aggregation). Thay vì dựa vào một cây quyết định duy nhất, mô hình xây dựng một "rừng" các cây quyết định và tổng hợp kết quả của chúng.
        
        Các siêu tham số đóng vai trò quyết định đến độ phức tạp và hiệu năng của mô hình. Dựa trên quá trình tinh chỉnh thực nghiệm, bộ siêu tham số tối ưu được lựa chọn như sau:
        \begin{itemize}
            \item n\_estimators (Số lượng cây): 100.
            Số lượng cây quyết định trong rừng. Con số 100 đảm bảo độ ổn định của kết quả dự báo (giảm phương sai) mà không làm tăng quá mức chi phí tính toán.
            
            \item max\_depth (Độ sâu tối đa): 5.
            Giới hạn độ sâu của mỗi cây. Việc giới hạn ở mức 5 là chiến lược quan trọng để tránh hiện tượng quá khớp (Overfitting), giúp mô hình chỉ học các quy luật tổng quát thay vì học thuộc lòng dữ liệu nhiễu.
            
            \item min\_samples\_leaf: 10.
            Số lượng mẫu tối thiểu cần thiết tại một nút lá. Tham số này giúp "làm trơn" mô hình, loại bỏ các nhánh cây được tạo ra bởi các điểm dữ liệu ngoại lai cá biệt.
            
            \item n\_jobs: -1.
            Kích hoạt chế độ xử lý song song, sử dụng toàn bộ lõi CPU có sẵn để tăng tốc độ huấn luyện.
            
            \item random\_state: 42.
            Đảm bảo tính tái lập của kết quả thực nghiệm.
        \end{itemize}
        
        Cơ chế hoạt động của mô hình Random Forest trong bài toán này được mô tả cụ thể qua các bước:
        \begin{itemize}
            \item Bước 1 - Lấy mẫu Bootstrap:
            Từ tập dữ liệu huấn luyện ban đầu, thuật toán tạo ra 100 tập con khác nhau bằng cách lấy mẫu ngẫu nhiên có hoàn lại (sampling with replacement).
            
            \item Bước 2 - Xây dựng cây quyết định:
            Trên mỗi tập con, một cây quyết định (Decision Tree) được xây dựng. Tại mỗi nút phân chia của cây, thuật toán chỉ xem xét một tập hợp ngẫu nhiên các đặc trưng khí tượng để tìm ra điểm cắt tối ưu. Điều này tạo ra sự đa dạng  giữa các cây trong rừng.
            
            \item Bước 3 - Tổng hợp kết quả (Aggregation):
            Khi có dữ liệu đầu vào mới (dữ liệu khí tượng dự báo), mỗi cây trong số 100 cây sẽ đưa ra một giá trị dự báo $ET_0$ riêng. Kết quả cuối cùng của mô hình là giá trị trung bình cộng của 100 dự báo này:
            \begin{equation}
                \hat{y} = \frac{1}{N} \sum_{i=1}^{N} f_i(x)
            \end{equation}
            Trong đó $N=100$ là số lượng cây, $f_i(x)$ là kết quả dự báo của cây thứ $i$. Cơ chế trung bình hóa này giúp triệt tiêu các sai số ngẫu nhiên và tạo ra đường dự báo mượt mà, bám sát thực tế.
        \end{itemize}



\section{Kết quả Dự báo $ET_0$}

\subsubsection{Kết quả định lượng}
Hiệu năng của mô hình Random Forest trên tập dữ liệu thử nghiệm (2021-2023) được đo lường qua các chỉ số: $R^2$, Adjusted $R^2$, RMSE và MAE. Kết quả thu được phản ánh độ tin cậy cao của mô hình dự báo:

\begin{table}[H]
    \centering
    \caption{Bảng chỉ số đánh giá hiệu năng mô hình Random Forest}
    \label{tab:model_metrics}
    \begin{tabular}{|l|c|}
        \hline
        \textbf{Chỉ số đánh giá (Metric)} & \textbf{Giá trị đạt được} \\ \hline
        $R^2$ Score & 0.9350 \\ \hline
        Adjusted $R^2$ & 0.9343 \\ \hline
        RMSE (mm/day) & 0.2234 \\ \hline
        MAE (mm/day) & 0.1595 \\ \hline
    \end{tabular}
\end{table}

\textbf{Nhận xét và Đánh giá:}
Dựa trên Bảng \ref{tab:model_metrics}, ta có các phân tích sau:
\begin{itemize}
    \item Độ phù hợp cao: Giá trị $R^2 \approx 0.935$ cho thấy mô hình giải thích được hơn 93.5\% sự biến thiên của dữ liệu thực tế. Điều này khẳng định các biến đầu vào khí tượng có mối quan hệ tương quan rất chặt chẽ với giá trị $ET_0$.
    \item Sai số thấp: Chỉ số MAE đạt $0.1595$ mm/day. Trong ngữ cảnh nông nghiệp thông minh, mức sai số này là rất nhỏ, đảm bảo độ tin cậy tuyệt đối khi đưa vào thuật toán tính toán lượng nước tưới bù thực tế.
    \item Khả năng tổng quát hóa:Sự chênh lệch giữa $R^2$ và Adjusted $R^2$ là cực kỳ thấp ($0.0007$), chứng tỏ mô hình không bị hiện tượng quá khớp (overfitting) và hoạt động ổn định trên dữ liệu mới.
\end{itemize}

\subsubsection{Kết quả trực quan hóa}
Hình \ref{fig:rf_prediction} minh họa khả năng bám sát thực tế của mô hình trong giai đoạn nửa đầu năm 2023.

\begin{figure}[H]
    \centering
    \includegraphics[width=1.0\textwidth]{Content/Images/C2/RF.png} 
    \caption{Biểu đồ so sánh giá trị $ET_0$ Thực tế và Dự báo (Năm 2023)}
    \label{fig:rf_prediction}
\end{figure}

\textbf{Nhận xét biểu đồ:}
Đường dự báo (màu đỏ) bám sát các dao động của đường thực tế (màu xanh). Đặc biệt tại các điểm cực trị (biến động mạnh vào tháng 3 và tháng 5), mô hình vẫn bắt kịp xu hướng, đáp ứng tốt yêu cầu của bài toán điều khiển thời gian thực.

\section{Kết quả Mô phỏng Chiến lược Tưới Thông minh}

Sau khi có $ET_0$ dự báo, hệ thống thực hiện mô phỏng thuật toán điều khiển tưới trên chu kỳ sinh trưởng 135 ngày của cây cà chua để đánh giá tính hiệu quả.

\subsubsection{Phân tích diễn biến độ ẩm đất (Kịch bản MAD=0.5)}
Hình \ref{fig:soil_balance} thể hiện trạng thái cân bằng nước trong đất dưới sự điều phối của thuật toán dự báo.

\begin{figure}[H]
    \centering
    \includegraphics[width=1.0\textwidth]{Content/Images/C2/2.png} 
    \caption{Biểu đồ cân bằng nước và các sự kiện tưới (135 ngày đầu, MAD=0.5)}
    \label{fig:soil_balance}
\end{figure}

\textbf{Phân tích hoạt động:}
\begin{itemize}
    \item Sự mở rộng vùng an toàn (Safe Zone): Vùng màu xanh nhạt (giới hạn bởi $S_{max}$ và $S_{trigger}$) mở rộng dần theo thời gian. Điều này phản ánh sự phát triển của bộ rễ ($Z_r$ tăng), làm tăng dung tích chứa nước hữu hiệu trong đất khi cây lớn lên.
    \item Chiến lược tưới thích ứng: 
    \begin{itemize}
        \item Giai đoạn đầu (tháng 1 - tháng 2): Cây còn nhỏ, rễ nông nên đất nhanh cạn kiệt. Hệ thống tưới với tần suất dày nhưng lượng nước mỗi lần (cột màu vàng) thấp.
        \item Giai đoạn sau (tháng 3 - tháng 5): Khi rễ đã sâu, chu kỳ tưới thưa dần nhưng lượng nước tưới mỗi lần tăng mạnh (đạt ngưỡng ~35-40mm) để lấp đầy vùng rễ.
    \end{itemize}
    \item Độ ổn định: Đường độ ẩm (màu xanh dương) luôn được duy trì phía trên đường ngưỡng kích hoạt (màu đỏ), đảm bảo cây không bao giờ bị rơi vào trạng thái thiếu nước.
\end{itemize}

\subsubsection{So sánh hiệu quả giữa các kịch bản MAD}
Để tối ưu hóa tài nguyên, đồ án thực hiện khảo sát trên 3 mức độ quản lý cạn kiệt ($MAD \in \{0.4, 0.5, 0.6\}$). Kết quả so sánh tần suất hoạt động được thể hiện trong Hình \ref{fig:comparison}.

\begin{figure}[H]
    \centering
    \includegraphics[width=1.0\textwidth]{Content/Images/C2/3.png} % Thay đường dẫn ảnh của bạn vào đây
    \caption{So sánh số lần giữa các kịch bản MAD}
    \label{fig:comparison}
\end{figure}

\textbf{Đánh giá so sánh:}
\begin{itemize}
    \item Kịch bản MAD=0.4: Hệ thống cần tưới 144 ngày (16.0\%). Chế độ này giữ đất luôn ẩm nhất nhưng tiêu tốn năng lượng vận hành bơm cao nhất.
    \item Kịch bản MAD=0.6: Hệ thống chỉ cần tưới 96 ngày (10.7\%). Đây là chế độ tiết kiệm năng lượng tối ưu, tận dụng tối đa khả năng chịu hạn của cây.
    \item Kịch bản MAD=0.5: Hoạt động 115 ngày (12.8\%). Đây là điểm cân bằng lý tưởng, giảm được số lần vận hành so với mức 0.4 mà vẫn đảm bảo an toàn hơn mức 0.6.
\end{itemize}

\textbf{Kết luận:} Thuật toán đề xuất giúp hệ thống ở trạng thái "nghỉ" (không cần tưới) trong khoảng 84.0\% - 89.3\% tổng thời gian vận hành. Kết quả này chứng minh hiệu quả vượt trội trong việc tiết kiệm điện năng và tài nguyên nước so với phương pháp tưới truyền thống.









        
