我正在开发Point Cloud项目。我有大约90个3D点云图像。在对我的数据进行所有预处理工作之后,我使用PCA来降低维数,并且我获得的输出是2D(当我绘制这些主要组件时,我得到了我的图像)。
现在,我正在尝试将此主要组件提供给SVM进行分类。到目前为止,我已经使用了代码(可行):
import os
import glob
import pandas as pd
import numpy as np
from sklearn.svm import SVC
path = "/home/me/Desktop/pca-comma-seperated-csv" #path to my pca'd files
all_files = glob.glob(os.path.join(path, "*.csv"))
df_from_each_file = (pd.read_csv(f) for f in all_files) #creating dataframe from 90 csv files,each csv file containing 2 columns and upto 23000 columns
X = pd.concat(df_from_each_file, ignore_index=True)
classfile = "/home/me/Desktop/1.csv" #path to my label file
Y = pd.read_csv(classfile, header=1)
clf = SVC()
clf.fit(X, Y)
现在回答我的问题,如何将我的数据分成培训(70%)和测试(30%)。我将什么(测试或培训框架)提供给SVM进行分类?我如何在python中获得类似下面示例中的R的混淆矩阵?
示例:
truth
pred abnormal normal
abnormal 231 32
normal 27 54
Accuracy : 0.8285
95% CI : (0.7844, 0.8668)
No Information Rate : 0.75
P-Value [Acc > NIR] : 0.0003097
Kappa : 0.5336
Mcnemar's Test P-Value : 0.6025370
Sensitivity : 0.8953
Specificity : 0.6279
Pos Pred Value : 0.8783
Neg Pred Value : 0.6667
Prevalence : 0.7500
Detection Rate : 0.6715
Detection Prevalence : 0.7645
'Positive' Class : abnormal