pearlinux でpython06 | kazenokinositaのブログ

kazenokinositaのブログ

Telloは少しお休みで、pythonそしてPearOSとたわむれてます

猫以下なので、参考にします

 

 

 

全データ数 150
データ内の setosa の数 50
データ内の versicolor の数 50
データ内の virginica の数 50
特徴の数(カラム数) 4(がく片の長さ,がく片の幅,花びらの長さ,花びらの幅)
setosa データ内では、「0」と表されています
versicolor データ内では、「1」と表されています
virginica データ内では、「2」と表されています
 わかりやすいですね
 でも、もう少しデーターの様子が
知りたくなり本家の説明

 

ここにある散布図(scatter っていうの初めて知りました

<sample4.py>
import matplotlib.pyplot as plt

_, ax = plt.subplots()
scatter = ax.scatter(iris.data[:, 0], iris.data[:, 1], c=iris.target)
ax.set(xlabel=iris.feature_names[0], ylabel=iris.feature_names[1])
_ = ax.legend(
    scatter.legend_elements()[0], iris.target_names, loc="lower right", title="Classes"
)
通好みの書き方なんでしょうが、_, ax そのうち極めましょう今日は保留
ただこれではエラーも出ないのになんの表示もしてくれません
一行
plt.show()加えてOK
よくできたデーターで
流石に2つの条件ではsetosaは行けそうですがのこりの線引きは難しそう
<smple10.py>
from sklearn import datasets
 
iris = datasets.load_iris()
import mpl_toolkits.mplot3d # noqa: F401
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA
 
fig = plt.figure(1, figsize=(8, 6))
ax = fig.add_subplot(111, projection="3d", elev=-150, azim=110)
 
X_reduced = PCA(n_components=3).fit_transform(iris.data)
ax.scatter(
X_reduced[:, 0],
X_reduced[:, 1],
X_reduced[:, 2],
c=iris.target,
s=40,
)
 
ax.set_title("First three PCA dimensions")
ax.set_xlabel("1st Eigenvector")
ax.xaxis.set_ticklabels([])
ax.set_ylabel("2nd Eigenvector")
ax.yaxis.set_ticklabels([])
ax.set_zlabel("3rd Eigenvector")
ax.zaxis.set_ticklabels([])
 
plt.show()

今度のは3dで見ました、こうしてみると目視でも
境界がわかりますね。