我对Python非常陌生,正在尝试使用我自己的硬件复制这个手语手套项目,作为机器学习的首次练习。我已经能够从加速计中将数据写入CSV文件,但我无法理解这个过程。名为’modeling’的文件让我感到困惑。有人能帮助我理解正在发生的过程吗?
import numpy as npfrom sklearn import svmfrom sklearn import treefrom sklearn.ensemble import RandomForestClassifierfrom sklearn.naive_bayes import GaussianNBfrom sklearn.metrics import accuracy_scorefrom sklearn.metrics import confusion_matriximport pandas as pddf= pd.read_csv("final.csv") ##这个我理解。我已经成功创建了包含数据的csv文件########################################################################### 下面这些,我不明白。from sklearn.model_selection import train_test_splittrain, 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.cltest_features = test[['F1','F2','F3','F4','F5','X','Y','Z','C1','C2']]test_label = test.cl## SVMmodel = 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)
回答:
欢迎加入社区。这看起来是一个很好的开始方式。
正如@***建议的那样,我建议你查看sklearn的文档。但这里是对正在发生的事情的简要解释。
train_test_split函数随机将数据集分成两个数据集,用于训练和测试。test_size = 0.2表示20%的数据将用于测试集,其余80%用于训练集。
接下来的两行只是分离出用于训练的输入(特征)和输出(目标)。测试集的下一两行也是如此。
最后,你创建一个SVM对象,使用model.fit训练模型,并使用.score获取其得分。然后,你使用模型对测试集进行预测。最后,你打印出测试集的准确性得分,以及其混淆矩阵。
如果你需要我进一步澄清或详细说明某事,请告诉我!