python - 来自 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)
解决方案
欢迎来到社区。这看起来是个不错的开始方式。
就像@hilverts_drinking_problem 建议的那样,我建议查看 sklearn 文档。但这里是对正在发生的事情的快速解释。
train, test split 函数将数据集随机拆分为两个数据集,以便进行训练和测试。test_size = 0.2 表示 20% 的数据将在测试集中,其余 80% 在训练集中。
接下来的两行只是分离出训练的输入(特征)和输出(目标)。接下来的两行中的测试相同。
最后,您创建一个 SVM 对象,使用 model.fit 训练模型,并使用 .score 获得其分数。然后,您使用该模型来预测测试集的内容。最后,打印测试集的准确度分数及其混淆矩阵。
如果您需要我澄清/详细说明某些事情,请告诉我!
推荐阅读
- java - 如何在 Spring Webflux 控制器中结合 Flux 和 ResponseEntity
- windows - WSUS 中的“导入更新”选项已禁用
- java - 如果用户已从存储目录中删除项目表单recyclerview,如何删除它?
- python - 如何在python中将列表元素作为键添加到字典中
- nginx - Nginx 通配符反向代理同名
- php - 避免 PHP 中的等号和 & 号转换
- point-clouds - 结构光3D扫描点云数据如何获取?
- javascript - 通过 ReactJs 中的事件处理创建内容以传递给子级
- python - Pandas:删除具有相同“舍入”值的重复行而不创建新列
- html - 是否可以仅使用 HTML 折叠文本?