模型摘要
這個模型是一個基於XGBoost的機器學習分類器,專門用來預測一期稻作物的水分狀態。模型通過使用200棵增強樹,利用多光譜數據中不同波段的光譜特徵(例如均值、最大值、最小值、標準差和方差)來進行學習,進而為作物水分管理提供早期預警。
模型執行方式 (Detailed Execution Instructions)
1. 安裝必要的環境
在執行模型之前,您需要準備好 Python 環境,並安裝所需的依賴庫:
```bash
建立虛擬環境 (可選)
python -m venv myenv
source myenv/bin/activate # 對於 Windows 使用 myenv\Scripts\activate
安裝必要套件
pip install xgboost numpy pandas scikit-learn
import pandas as pd
載入數據集
data = pd.read_csv('path_to_your_data.csv')
顯示數據集的前五行
print(data.head())
from sklearn.model_selection import train_test_split
定義特徵和標籤
X = data.drop(columns=['label']) # 'label' 為目標變量名稱
y = data['label']
將數據分為訓練集和測試集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
import xgboost as xgb
創建 XGBoost 分類器
model = xgb.XGBClassifier(n_estimators=200, use_label_encoder=False, eval_metric='mlogloss')
訓練模型
model.fit(X_train, y_train)
模型訓練完成後的輸出
print("模型訓練完成")
from sklearn.metrics import accuracy_score
預測測試集
y_pred = model.predict(X_test)
計算準確率
accuracy = accuracy_score(y_test, y_pred)
print(f"模型準確率: {accuracy * 100:.2f}%")
保存模型
model.save_model('xgboost_model.json')
載入模型
loaded_model = xgb.XGBClassifier()
loaded_model.load_model('xgboost_model.json')
print("模型已成功載入")
假設有一個新的數據點
new_data = pd.DataFrame({
'390_mean': [12.3],
'410_mean': [15.1],
'450_mean': [17.6],
# 添加其他特徵...
})
使用模型進行預測
prediction = loaded_model.predict(new_data)
print(f"預測結果: {prediction[0]}")
import matplotlib.pyplot as plt
繪製特徵重要性
xgb.plot_importance(model)
plt.show()