コード
numpy.random インポート RandomStateの#の負荷が作成するためのランダムシードをRandomState インポートPLT AS matplotlib.pyplot から sklearn.datasets インポートfetch_olivetti_faces から sklearn インポート分解 n_col、n_row = 2 ,. 3 #1 画像表示時間設定の構成 n_row * n_col = n_componentsを #6 image_shape =(64、64)#1 画像の顔データサイズのセット のDataSet = fetch_olivetti_faces(シャッフル=真、random_state = RandomState(0)) #のアレイ、二次元 #の印刷(データセット) 対向= dataset.data #1次元配列 #の印刷(顔) DEFの plot_gallery(タイトル、ロイヤリティーフリー、n_col = n_col、n_row = n_row): plt.figure(figsize。=(2 * n_col、2.26 * n_row)) #指定した画像サイズ plt.suptitle(タイトル、サイズ= 16) #設定されたタイトルとフォントサイズ のための I、CoMPの中に列挙(イメージ): plt.subplot(n_row、n_col、私は + 1)。 #サブグラフ作ら選択ビデオ VMAX = MAX(comp.maxを()、 - comp.min()) plt.imshow(comp.reshape(image_shape)、CMapの = plt.cm.gray、 補間 = ' 最も近い'、-Vmax = Vminと、値Vmax = Vmaxと)#正規化された値、およびグレーグラフィック表示 plt.xticksは(()) plt.yticksは(()) #除去サブグラフ軸がラベル plt.subplots_adjust(0.01、0.05、0.99、 0.93、00.04、0。 )#1 セットサブピクチャ位置及び間隔調整 plot_gallery(" 最初のOlivettiは、顔を中心に" 、顔[:n_components]) 推定量 = [ (' 固有顔- PCA SVDを使用して無作為' 、 decomposition.PCA(n_componentsの = 6、白く= TRUE)) 、 (' 非負コンポーネント- NMF ' 、 decomposition.NMF(n_componentsする。= 6、INIT = 'nndsvda "、のTol = -5E 3。 )) ] のための名前、推定で推定: #印刷(推定) を印刷(" トップの抽出%S%D ... "%(n_components、名)) を印刷(faces.shape)#出力画像サイズ400,4096 estimator.fit(顔)#の特徴を抽出するコールアルゴリズム components_ = estimator.components_ #取得した特徴抽出、二次元リスト #プリント(components_) plot_gallery:(名前、コンポーネント_ [n_components])#1 に従って固定フォーマットが配置 plt.showを()
レンダリング: