如何使用Python Scikit-Learn生成對稱正定矩陣?
Python Scikit-learn 提供了 `make_spd_matrix()` 函式,藉助該函式我們可以生成隨機對稱正定矩陣。在本教程中,我們將使用 Python 中的 Scikit-learn (Sklearn) 生成對稱正定矩陣和稀疏 spd 矩陣。
為此,我們可以遵循以下步驟:
步驟 1 − 匯入必要的庫:`sklearn.datasets.make_spd_matrix`、`matplotlib` 和 `seaborn`。
步驟 2 − 建立 `make_spd_matrix()` 的物件,並提供 `n_dim` 引數的值,該引數表示矩陣維度。
步驟 3 − 使用 matplotlib 庫設定輸出圖形的大小。
步驟 4 − 使用 seaborn 庫將矩陣繪製為顏色編碼方案。
示例
# Importing libraries from sklearn.datasets import make_spd_matrix from matplotlib import pyplot as plt from matplotlib import style import seaborn as sns # Set the figure size plt.rcParams["figure.figsize"] = [7.16, 3.50] plt.rcParams["figure.autolayout"] = True plt.show() # Creating and plotting Sparse Positive-Definite matrix of dimension 4 style.use("ggplot") spd = make_spd_matrix(n_dim=4, random_state=1) sns.heatmap(data=spd, annot=True, cmap='rocket') plt.show()
輸出
它將產生以下輸出

示例
檢查上面生成的稀疏正定矩陣的值:
import pandas as pd from sklearn.datasets import make_spd_matrix spd = make_spd_matrix(n_dim=4, random_state=1) print(pd.DataFrame(spd))
輸出
它將產生以下輸出
0 1 2 3 0 1.214261 -1.693503 0.092278 -0.167397 1 -1.693503 3.331807 -0.230052 0.424357 2 0.092278 -0.230052 0.381256 0.119570 3 -0.167397 0.424357 0.119570 0.387159
生成稀疏 spd 矩陣
Python Scikit-learn 提供了 `make_sparse_spd_matrix()` 函式,藉助該函式我們可以生成稀疏對稱正定 (spd) 矩陣。
為了生成它並在三維空間中繪製它,我們可以遵循以下步驟:
步驟 1 − 匯入必要的庫:`sklearn.datasets.make_sparse_spd_matrix()` 和 `matplotlib`。
步驟 2 − 提供樣本數量和其他引數。
步驟 3 − 使用 NumPy 建立一個隨機陣列。此陣列應與在 `sklearn.datasets.make_sparse_spd_matrix()` 函式中提供的元素數量相同。
步驟 4 − 使用 matplotlib 庫設定輸出圖形的大小和樣式。
步驟 5 − 使用 matplotlib 構造一個 3D 圖表以說明稀疏 spd 矩陣。
示例
在下面的示例中,我們將生成具有 500 個樣本的稀疏 spd 矩陣。
# Importing libraries from sklearn.datasets import make_sparse_spd_matrix import numpy as np import matplotlib.pyplot as plt import matplotlib.style import matplotlib as mpl mpl.style.use('classic') from mpl_toolkits.mplot3d import Axes3D # Creating Sparse spd matrix X= make_sparse_spd_matrix(dim=500, random_state=0) #Creating a random array 'y'(it's not sparse) from numpy import random y=random.randint(2, size=(500)) # Plotting the sparse spd matrix in 3-dimensional figure_3D = plt.figure(figsize=(7.50,3.50)) plt.subplots_adjust(bottom=0.05, top=0.9, left=0.05, right=0.95) ax = figure_3D.add_subplot(111, projection='3d') ax.scatter(X[:, 0], X[:, 1], X[:, 2], c=y, cmap=plt.cm.rainbow) plt.title('Sparse spd matrix') plt.show()
輸出
它將產生以下輸出:

資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP