人類活動識別(HAR)是指機器確定用戶執行的各種活動的能力。從這些系統/算法中獲取的知識已集成到許多應用程序中,相關設備將其用於識別動作或手勢並執行響應中的預定義任務。
我們有興趣根據加速度計數據對人類活動進行分類。我們將使用一個名為UCI-HAR的公開可用數據集。該數據集可在此處下載。在您的參考文獻中,也可以在此處獲得參與者收集參與者加速度計數據的作者的YouTube視頻。
我們將在wertial_signals文件夾中使用原始加速度計數據。提供的腳本, CombineScript.py
,組織和分類加速度計數據,為每個類別建立單獨的類,並將參與者數據編譯到這些類中。 MakeDataset.py
腳本用於讀取所有參與者數據並創建一個數據集。然後將數據集分為火車,測試和驗證集。我們專注於活動的前10秒,這轉化為最初的500個數據樣本,因為採樣率為50Hz。
CombineScript.py
和MakeDataset.py
放在包含UCI數據集的同一文件夾中。在運行腳本之前,請確保您已移至文件夾中。如果您要從其他文件夾中運行腳本,則必須使用腳本中的路徑來使其正常工作。CombineScript.py
並提供UCI數據集中測試和火車文件夾的路徑。這將創建一個稱為Combined
的文件夾,該文件夾將包含來自所有參與者的所有數據。這就是大多數數據集的組織方式。將來您可能會遇到類似的數據集結構。MakeDataset.py
並提供Combined
文件夾的路徑。這將創建一個數據集,該數據集將包含火車,測試和驗證集。您可以使用此數據集訓練模型。零射擊提示涉及提供一個提示或一組指令的語言模型,該模型允許其生成文本或執行任務,而無需任何明確的培訓數據或標記的示例。預計該模型將僅根據提示及其內部知識來準確地生成高質量的文本或準確執行任務。
很少有射擊提示類似於零拍的提示,但它涉及為模型提供與特定任務或數據集相關的標記示例或提示。然後,預計該模型將基於少數標記的示例及其內部知識來生成高質量的文本或準確執行任務。
為您提供了一本Python筆記本電腦,該筆記本顯示瞭如何使用語言模型(LLM)使用零射擊和很少的彈藥提示。筆記本中的示例涉及基於文本的任務,但是LLM也可以應用於廣泛的任務(學生學習更多的學生可以在這里和這裡閱讀)。
查詢將以特徵加速度計數據的形式提供,該模型應預測執行的活動。
對於此練習標記,將不取決於您獲得的數字,而是在您遵循的過程中使用智能手機的Physics Toolbox Suite
等應用程序以.csv/.txt格式收集數據。確保收集至少15秒的數據,修剪邊緣以獲得10秒的相關數據。還在錄製數據時錄製自己的視頻。將來的某些作業將需要該視頻。每個活動類別收集3-5個樣品。
在樹/base.py中完成決策樹實現。該代碼應以Python編寫,並且不使用除課堂中共享或已經在代碼中導入的庫以外的現有庫。您的決策樹應適用於四種情況:i)離散功能,離散輸出; ii)離散功能,實際輸出; iii)真實功能,離散輸出;真實功能,實際輸出。您的模型應僅接受真實的輸入(對於離散輸入,您可以將屬性轉換為單熱編碼的向量)。您的決策樹應能夠使用熵或giniindex用作分裂輸出的標準。您的決策樹應能夠使用MSE作為分割實際輸出的標準。您的代碼還應該能夠繪製/顯示決策樹。 [2.5分]
您應該編輯以下文件。
metrics.py
:完成此文件中的性能指標功能。
usage.py
:運行此文件以檢查您的解決方案。
樹(目錄):決策樹的模塊。
base.py
:完成決策樹類。utils.py
:完成所有實用程序功能。__init__.py
:不要編輯此您應該運行usage.py來檢查您的解決方案。
使用以下代碼生成數據集
from sklearn . datasets import make_classification
X , y = make_classification (
n_features = 2 , n_redundant = 0 , n_informative = 2 , random_state = 1 , n_clusters_per_class = 2 , class_sep = 0.5 )
# For plotting
import matplotlib . pyplot as plt
plt . scatter ( X [:, 0 ], X [:, 1 ], c = y )
a)在上述數據集上顯示您的決策樹的用法。前70%的數據應用於培訓目的,其餘30%用於測試目的。顯示您在測試數據集上實現的決策樹的準確性,每類精確度和回憶。 [0.5分]
b)在數據集上使用5倍的交叉驗證。使用嵌套交叉驗證找到樹的最佳深度。 [1標記]
您應該為包含上述實驗的代碼編輯
classification-exp.py
a)顯示您對汽車效率問題的決策樹的用法。 [0.5分]
b)將模型的性能與Scikit Learn的決策樹模塊進行比較。 [0.5分]
對於包含上述實驗的代碼,您應該編輯
auto-efficiency.py
。
創建一些虛假數據,以進行一些關於決策樹算法的運行時復雜性的實驗。創建一個帶有n個樣本和M二進制功能的數據集。改變M和N以繪製以下時間:1)學習樹,2)預測測試數據。這些結果與決策樹創建和預測的理論時間複雜性相比。您應該對所有四個決策樹進行比較。 [1分]
您應該為包含上述實驗的代碼編輯
experiments.py
。
您必須通過創建Asst#<task-name>_<Q#>.md