Matrix, Vector
2385 ワード
Matrix
1年生で勉強し、先代から数学の知識が削除された.後味としてnumpy記号と記録.
Annotation
scalar calculation
numpy中+,-可能
scalar product
Hardmard Product:シルバーベクトルの間に成分を乗じる
X · YX * Y
Norm
原点からベクトルまでの距離.
L 1ノルム=変化量の絶対値の和
L 2ノルム=ユークリッド距離
ベクトル間の角度
2番目の余弦法則を用いて,2つのベクトル間の角度を計算できた.def angle(x, y):
v = np.inner(x, y) / (l2_norm(x) * l2_norm(y))
theta = np.arccos(v)
return theta
multiplication
XYX @ Y
行列乗はまた、行列をベクトル空間の演算子として理解することもできる.これは、ベクトルがマトリクス積によって別の次元のベクトルに送信されるからである.
すなわち、モード抽出およびデータ圧縮に用いることができる.
inner product
inner in numpy
np.内積はベクトル間の内積です.行列にベクトル間の内積を表す場合は、通常Transposeを使用して数式化されます.
np.inner(X, Y)
Inverse matrix
np.linalg.inv(X)
ぎぎゃくぎょうれつ
X * Y
def angle(x, y):
v = np.inner(x, y) / (l2_norm(x) * l2_norm(y))
theta = np.arccos(v)
return theta
X @ Y
np.inner(X, Y)
np.linalg.inv(X)
n=行、m=列
np.linalg.pinv(X)
連立方程式を解く
せんけいかいきかいせき
データの分布を考慮すると,連立方程式のように線形回帰解析を行うことは不可能である.
従って,通常はyのL 2ノルムを最小化する方向に解を探す.
# using sklearn for linear regression
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X, y)
y_test = model.predict(x_test)
# Moore-Penrose inverse matrix
X_ = np.array([np.append(x, [1]) for x in X]) # y절편(intercept) 추가
beta = np.linalg.pinv(X_) @ y
y_test = np.append(x_test) @ beta
sklearnは線形回帰時にyスライスを自動的に推定して計算する.Moore‐Penrose逆行列による線形回帰では,yスライスを直接添加してXを構築する必要がある.
Reference
この問題について(Matrix, Vector), 我々は、より多くの情報をここで見つけました https://velog.io/@naem1023/Matrix-Vectorテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol