我正在对具有2个簇的30个样本的集合进行k-means聚类(我已经知道有两个类).我将我的数据分成训练和测试集,并尝试计算我的测试集上的准确度分数.但是有两个问题:首先我不知道我是否可以实际做到这一点(测试集的准确度得分)用于k-means聚类.第二:如果我被允许这样做,我的实现是写还是错.这是我尝试过的:
df_hist = pd.read_csv('video_data.csv')
y = df_hist['label'].values
del df_hist['label']
df_hist.to_csv('video_data1.csv')
X = df_hist.values.astype(np.float)
X_train, X_test,y_train,y_test = cross_validation.train_test_split(X,y,test_size=0.20,random_state=70)
k_means = cluster.KMeans(n_clusters=2)
k_means.fit(X_train)
print(k_means.labels_[:])
print(y_train[:])
score = metrics.accuracy_score(y_test,k_means.predict(X_test))
print('Accuracy:{0:f}'.format(score))
k_means.predict(X_test)
print(k_means.labels_[:])
print(y_test[:])
Run Code Online (Sandbox Code Playgroud)
但是,当我打印K-装置,用于测试的一组标签(k_means.predict(X_test) 打印(k_means.labels_ [:]) )和y_test标签(打印(k_means.labels_ [:]) )在过去的三线,我得到的标签与我安装X-train时的标签相同,而不是为X-test生成的标签.知道我在这里做错了什么吗?我正在做什么来评估k-means的表现是否正确?谢谢!
我试图通过opencv python中的Sobel函数获得渐变的方向.问题是当我将x和y方向的梯度提供给相位函数时,无论相位度是真还是假,它总是给出相同的结果.以下是示例代码:
img = cv2.imread('frameBB.jpg',0)
sobelx = cv2.Sobel(img,cv2.CV_32F,1,0,ksize=3)
sobely= cv2.Sobel(img,cv2.CV_32F,0,1,ksize=3)
phase=cv2.phase(sobelx,sobely,True)
Run Code Online (Sandbox Code Playgroud)
然后我得到相位的直方图,并最终得到相位函数的最后一个参数为True或False的相同结果.两种情况下的直方图都是这样的.
这就是原始图像及其渐变图像的样子:
我不确定我在这里做错了什么,以及为什么我得到两个案例的弧度渐变角度.
python ×3
opencv ×2
ffmpeg ×1
k-means ×1
opencv3.0 ×1
python-3.x ×1
scikit-learn ×1
tracking ×1
video ×1