- 3D点群から物体をアームでピッキングする際に,認識点群を主成分分析し第二主成分を把持方向とすることがある
pca.py
import numpy as np
import scipy as sp
from sklearn.datasets import make_classification
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt
# サンプルデータを生成
X, y = make_classification(n_samples=200, n_features=2, n_redundant=0, n_informative=2,
n_classes=1, n_clusters_per_class=1, random_state=0)
# 主成分分析
pca = PCA(n_components=2)
pca.fit(X)
# 可視化
plt.scatter(X[:, 0], X[:, 1], alpha=0.5)
l = pca.explained_variance_[1]
vector = pca.components_[1]
v = vector * 3 * np.sqrt(l)
plt.annotate('', pca.mean_ + v, pca.mean_ - v,
arrowprops=dict(connectionstyle='arc3', width=2))
plt.axis('equal')
plt.show()
結果
###参考
https://hawk-tech-blog.com/python-machine-learning-basic-pca/