首页 > 解决方案 > 来自 GitHub 的 Sign Language Glove 项目:帮助理解代码

问题描述

我对 Python 很陌生,我正在尝试用我自己的硬件复制这个 Sign Language Glove 项目以便首次练习机器学习。我已经可以从我的加速度计将数据写入 CSV 文件,但我无法理解这个过程。名为“建模”的文件让我感到困惑。谁能帮助我了解正在发生的过程?

import numpy as np
from sklearn import svm
from sklearn import tree
from sklearn.ensemble import RandomForestClassifier
from sklearn.naive_bayes import GaussianNB
from sklearn.metrics import accuracy_score
from sklearn.metrics import confusion_matrix

import pandas as pd
df= pd.read_csv("final.csv") ##This I understand. I've successfully created csv files with data


#########################################################################
## These below, I do not.

from sklearn.model_selection import train_test_split
train, test = train_test_split(df, test_size = 0.2)


train_features = train[['F1','F2','F3','F4','F5','X','Y','Z','C1','C2']]
train_label = train.cl

test_features = test[['F1','F2','F3','F4','F5','X','Y','Z','C1','C2']]
test_label = test.cl

## SVM
model = svm.SVC(kernel='linear', gamma=1, C=1)
model.fit(train_features, train_label)
model.score(train_features, train_label)
predicted_svm = model.predict(test_features)
print "svm"
print accuracy_score(test_label, predicted_svm)
cn =confusion_matrix(test_label, predicted_svm)

标签: pythonmachine-learningsvm

解决方案


欢迎来到社区。这看起来是个不错的开始方式。

就像@hilverts_drinking_problem 建议的那样,我建议查看 sklearn 文档。但这里是对正在发生的事情的快速解释。

train, test split 函数将数据集随机拆分为两个数据集,以便进行训练和测试。test_size = 0.2 表示 20% 的数据将在测试集中,其余 80% 在训练集中。

接下来的两行只是分离出训练的输入(特征)和输出(目标)。接下来的两行中的测试相同。

最后,您创建一个 SVM 对象,使用 model.fit 训练模型,并使用 .score 获得其分数。然后,您使用该模型来预测测试集的内容。最后,打印测试集的准确度分数及其混淆矩阵。

如果您需要我澄清/详细说明某些事情,请告诉我!


推荐阅读