Math & Linear Algebra/Concepts

linear & non-linear → span, basis, rank, projection

metamong 2022. 5. 13.

๐Ÿ‘ ์ €๋ฒˆ ์‹œ๊ฐ„์— coefficient ๋‘ ์ข…๋ฅ˜ Pearson๊ณผ Spearman์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ–ˆ์—ˆ๋‹ค!

 

๐Ÿ‘ correlation ๊ด€๋ จ ์ˆ˜ํ•™ & ์„ ๋Œ€ ๊ธฐ์ดˆ ๊ฐœ๋… span, basis, rank ๊ทธ๋ฆฌ๊ณ  ์‘์šฉํ•œ projection ๊ฐœ๋…๊นŒ์ง€ ์ด๋ฒˆ ํฌ์ŠคํŒ…์œผ๋กœ ๊ฐ„๋‹จํžˆ ์•Œ์•„๋ณดZA

 

 

Pearson & Spearman correlation coefficients

๐Ÿง“๐Ÿป ๋ฐ์ดํ„ฐ๋ถ„์„์— ์žˆ์–ด์„œ ๊ผญ ์•Œ๊ณ  ๋„˜์–ด๊ฐ€์•ผ ํ•  ๊ฐœ๋…์ธ ๋‘ coefficients ์ข…๋ฅ˜ Pearson๊ณผ Spearman์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด์ž โ‰ซ ์ €๋ฒˆ coursera ๊ฐ•์ขŒ posting์—์„œ ์•„์ฃผ ์ž ๊น ๋ฐฐ์› ๋˜ ์ ์ด ์žˆ์—ˆ๋‹ค ๐Ÿ„๐Ÿป coefficient

sh-avid-learner.tistory.com

 

๐Ÿ‘ ๋ชจ๋“  data๋ฅผ ์ขŒํ‘œ๊ณต๊ฐ„์˜ vector์ƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ๋˜ ์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ data, ์ฆ‰ ์—ฌ๋Ÿฌ ๊ฐœ์˜ vector๊ฐ€ ๋ชจ์ด๋ฉด matrix ํ˜•ํƒœ๋กœ ํ‘œํ˜„์ด ๊ฐ€๋Šฅ!

 

 

Scalar & Vector & Matrix (fundamentals)

โ–ถ Linear Algebra ํ•˜๋ฉด? ๋‹น์—ฐํžˆ ์•Œ์•„์•ผ ํ•  ๊ธฐ๋ณธ์€ 'Scalar(์Šค์นผ๋ผ)' & 'Vector(๋ฒกํ„ฐ)' & 'Matrix(ํ–‰๋ ฌ)' โ—€ 1. Scalar * concepts = "๋‹จ์ˆœํžˆ ๋ณ€์ˆ˜๋กœ ์ €์žฅ๋˜์–ด ์žˆ๋Š” ์ˆซ์ž" → vector ํ˜น์€ matrices์— ๊ณฑํ•ด์ง€๋Š”..

sh-avid-learner.tistory.com

 

1> span

๐ŸŒž span - '์ฃผ์–ด์ง„ ๋‘ ๋ฒกํ„ฐ์˜ (ํ•ฉ์ด๋‚˜ ์ฐจ์™€ ๊ฐ™์€) ์กฐํ•ฉ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ฐ€๋Šฅํ•œ ๋ฒกํ„ฐ์˜ ์ง‘ํ•ฉ'

 

๐ŸŒž correlation posting์—์„œ ์„œ๋กœ ๋‘ ๋ณ€์ˆ˜๊ฐ€ correlation ๊ด€๊ณ„๊ฐ€ ์•„์˜ˆ ์—†์Œ์„ vector ์ƒ์œผ๋กœ ๋‘ vector๊ฐ€ ์ง๊ตํ•จ์„ ํ†ตํ•ด ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•˜์˜€๋‹ค. ์—ฌ๊ธฐ์„œ vector๋ผ๋ฆฌ์˜ ๊ด€๊ณ„๋ฅผ ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€, ์„ ํ˜•๊ด€๊ณ„์— ์žˆ๋‹ค(linearly dependent) & ์„ ํ˜•๊ด€๊ณ„๊ฐ€ ์—†๋‹ค(linearly independent)๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

๐ŸŒž 1) ์„ ํ˜• ๊ด€๊ณ„์— ์žˆ๋Š” vector ์ง‘ํ•ฉ> ์ด ๋•Œ์˜ vector๋“ค์˜ span์€ ํ•œ ํ‰๋ฉด์ด ์•„๋‹Œ, vector๋“ค์ด ๊ฒน์ณ ์˜ฌ๋ ค์ ธ ์žˆ๋Š” ์„ ์œผ๋กœ ์ œํ•œ๋œ๋‹ค

๐ŸŒž 2) ๋น„์„ ํ˜•๊ด€๊ณ„์— ์žˆ๋Š” vector ์ง‘ํ•ฉ> vector๋“ค์€ ์„ ํ˜•์ ์œผ๋กœ ๋…๋ฆฝ๋˜์—ˆ๋‹ค๊ณ  ๋งํ•˜๋ฉฐ ์ฃผ์–ด์ง„ ๊ณต๊ฐ„(2๊ฐœ์˜ ๋ฒกํ„ฐ์˜ ๊ฒฝ์šฐ $R^2$ํ‰๋ฉด)์˜ ๋ชจ๋“  vector๋ฅผ ์กฐํ•ฉ์„ ํ†ตํ•ด ๋งŒ๋“ค์–ด ๋‚ผ ์ˆ˜ ์žˆ๋‹ค

 

 

2> basis

๐ŸŒ› basis๋Š” span์˜ ์—ญ๊ฐœ๋…์ด๋‹ค. V๋ผ๋Š” vector space ๋ฒกํ„ฐ๊ณต๊ฐ„์— S set์ด๋ผ๋Š” ์ฃผ์–ด์ง„ ์—ฌ๋Ÿฌ vector๋“ค์˜ ์ง‘ํ•ฉ - S๊ฐ€ ์กด์žฌํ•˜๋Š”๋ฐ, ์ด vector๋“ค(S set)์ด V๋ผ๋Š” ๋ฒกํ„ฐ๊ณต๊ฐ„์„ ์œ„ํ•œ basis๋ฅผ ๋งŒ์กฑํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”, ์ฆ‰ S set์ด V๋ผ๋Š” vector space๋ฅผ ์œ„ํ•œ basis๊ฐ€ ๋ ๋ ค๋ฉด

 

๐ŸŒ› โ‘  S set์ด V vector space ๊ณต๊ฐ„์„ span(ํฌ๊ด„) ํ•ด์•ผ ํ•จ - ์ฆ‰, vector space ๋‚ด๋ถ€ ์ „์ฒด๋ฅผ ํฌ๊ด„ํ•ด์•ผ ํ•จ

๐ŸŒ› โ‘ก ๊ทธ๋ฆฌ๊ณ  S set์ด ์„ ํ˜•์ ์œผ๋กœ ๋…๋ฆฝ์ด์–ด์•ผ ํ•จ (์ฆ‰, S set ๋‚ด vector๋“ค์ด ์„œ๋กœ ๋…๋ฆฝ. ์„œ๋กœ ๊ฐ™์€ ์„  ์ƒ์— ์žˆ์œผ๋ฉด ์•ˆ๋จ)

 

 

๐ŸŒ› ๋”ฐ๋ผ์„œ, basis์˜ ์ •์˜์— ์˜ํ•ด, ๋ฒกํ„ฐ ๊ณต๊ฐ„ V์˜ basis๋Š” V๋ผ๋Š” ๊ณต๊ฐ„์„ ์ฑ„์šธ ์ˆ˜ ์žˆ๋Š” ์„ ํ˜• ๊ด€๊ณ„์— ์žˆ์ง€ ์•Š์€ ๋ฒกํ„ฐ๋“ค์˜ ๋ชจ์Œ์ด๋‹ค

 

๐ŸŒ› orthogonal basis>

→ basis์— ์ถ”๊ฐ€๋กœ orthogonal(์ˆ˜์ง)ํ•œ ์กฐ๊ฑด์ด ๋ถ™๋Š”, ์ฃผ์–ด์ง„ ๊ณต๊ฐ„์„ ์ฑ„์šธ ์ˆ˜ ์žˆ๋Š” ์„œ๋กœ ์ˆ˜์ง์ธ vector๋“ค์„ ๋งํ•จ

→ basis ๋‚ด์˜ vector๋“ค์ด ์„œ๋กœ ์ˆ˜์ง

 

๐ŸŒ› orthonormal basis>

orthogonal basis์— ์ถ”๊ฐ€๋กœ normalizedํ•œ ์กฐ๊ฑด์ด ๋ถ™์€ ๊ฒƒ์œผ๋กœ, ๊ธธ์ด๊ฐ€ 1์ธ vector๋“ค์„ ๋งํ•œ๋‹ค

→ basis ๋‚ด์˜ vector๋“ค์ด ์„œ๋กœ ์ˆ˜์ง & vector length๊ฐ€ ๋ชจ๋‘ 1์ผ ๋•Œ

3> rank

๐ŸŒผ matrix์— ๊ตฌ์„ฑ๋˜๋Š” vector๋“ค๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„(span)์˜ ์ฐจ์›์„ rank๋ผ ํ•œ๋‹ค

 

๐ŸŒผ matrix์˜ ์ฐจ์› ≠ matrix์˜ rank

→ ์ด์œ ๋Š” matrix๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” vector๋“ค ์ค‘์— ์„œ๋กœ linearly dependentํ•œ ๊ด€๊ณ„๋„ ์žˆ์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค!

 

๐ŸŒผ gaussian elimination์„ ํ†ตํ•ด matrix์˜ rank ํ™•์ธ ๊ฐ€๋Šฅ

 

๐Ÿ gaussian elimination ๐Ÿ

 

๐ŸŒผ ์ฃผ์–ด์ง„ matrix๋ฅผ row-echelon form์œผ๋กœ ๋ฐ”๊พธ๋Š” ๊ณ„์‚ฐ๊ณผ์ •

→ row-echelon form์€ ๊ฐ ํ–‰์— ๋Œ€ํ•ด์„œ ์™ผ์ชฝ์— 1, ๊ทธ ์ดํ›„ ๋ถ€๋ถ„์€ 0์œผ๋กœ ์ด๋ค„์ง„ ํ˜•ํƒœ

→ ์ฆ‰, ๊ฐ ํ–‰์˜ ์‹œ์ž‘๋ถ€๋ถ„์ด '0์˜ ๋‚˜์—ด + 1'์˜ ํ˜•ํƒœ์—ฌ์•ผ ํ•จ

→ row-echelon form์€ ์ผ๋ฐ˜์ ์œผ๋กœ upper-triangular ํ˜•ํƒœ๋ฅผ ๊ฐ€์ง„ matrix์ž„

 

- row-echelon formํ˜•ํƒœ๋กœ ๋ฐ”๊พธ๋Š” ๊ณ„์‚ฐ๊ณผ์ • (ํ•˜๋‹จ) -

์•„๋ž˜ ์˜ˆ์˜ ๊ฒฝ์šฐ ๋งจ ๋งˆ์ง€๋ง‰ ์ค„์ด 0์œผ๋กœ๋งŒ ๋˜์–ด ์žˆ์–ด ํ•ด๋‹น matrix P์˜ rank๋Š” 3์ด ์•„๋‹Œ, 2์ด๋‹ค!

 

๐ŸŒผ ์žฌํ•ด์„> 'matrix์˜ rank๊ฐ€ x์ด๋‹ค' = 'ํ•ด๋‹น matrix๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ชจ๋“  vector๋“ค์„ ํ†ตํ•ด $R^x$ ๊ณต๊ฐ„๋งŒ์„ vector๋กœ ๋งŒ๋“ค์–ด๋‚ผ ์ˆ˜ ์žˆ๋‹ค'๋Š” ๋œป

w/code

 

โ˜…numpy.linalg.matrix_rank docuโ˜…

https://numpy.org/doc/stable/reference/generated/numpy.linalg.matrix_rank.html

 

from numpy.linalg import matrix_rank
linalg.matrix_rank(A, tol=None, hermitian=False)

 

→ ์ง์ ‘ parameter A์— rank๋ฅผ ๊ตฌํ•˜๊ณ ์ž ํ•˜๋Š” matrix๋ฅผ ์ง‘์–ด๋„ฃ์œผ๋ฉด ์›ํ•˜๋Š” rank๊ฐ€ ๋‚˜์˜จ๋‹ค

4> linear projection>

๐ŸŒธ (2์ฐจ์› ๊ณต๊ฐ„) vector w๋ฅผ ์„  L๋กœ ํˆฌ์˜๋œ ๊ฒฐ๊ณผ๋กœ ๋‚˜์˜จ vector๋ฅผ ๐‘๐‘Ÿ๐‘œ๐‘—๐ฟ(๐‘ค)๋ผ๊ณ  ํ•œ๋‹ค / ์ด ๋•Œ vector v๋ฅผ ์„  L์œ„์˜ ๋‹จ์œ„ vector๋ผ๊ณ  ํ•˜๋ฉด,,

 

- ์•„๋ž˜์™€ ๊ฐ™์ด ํ‘œํ˜„ ๊ฐ€๋Šฅ! -

 

๐ŸŒธ for feature reduction

projection์„ ํ†ตํ•ด ์—ฌ๋Ÿฌ vector๋“ค์„ ํ•œ line ์„ ์œผ๋กœ ๋‚ด๋ฆผ์œผ๋กœ์จ data ์ €์žฅ ๊ณต๊ฐ„๋„ ์ค„์ด๊ณ , data ๋ณต์žก์„ฑ๋„ ์ค„์ด๋Š” ํ˜œํƒ๋“ค์„ ๋ˆ„๋ฆด ์ˆ˜ ์žˆ๋‹ค!

 

๐ŸŒธ ์œ„ ์‹์„ w์™€ v์˜ ๊ณฑ์— ๋Œ€ํ•ด ๋‚˜์—ดํ•˜๋ฉด projection๋œ ๋ฒกํ„ฐ์˜ ํฌ๊ธฐ์™€ ํ•œ ๋ฒกํ„ฐ์˜ ํฌ๊ธฐ์˜ ๊ณฑ์œผ๋กœ ํ‘œํ˜„ ๊ฐ€๋Šฅ

w/ dot product

๐ŸŒธ ex) vector v [3, 1]์— vector w [-1, -2] ๋ฅผ ๊ณฑํ•œ ๊ฒฐ๊ณผ(dot product)๋Š” vector v์˜ ๊ธธ์ด์— vector w๋ฅผ v์— projectionํ•œ(๐‘๐‘Ÿ๐‘œ๐‘—w(v)์˜ ๊ธธ์ด) ๊ฒฐ๊ณผ์˜ ๊ธธ์ด๋ฅผ ๊ณฑํ•œ ๊ฒƒ๊ณผ ๊ฐ™๋‹ค

→ ๋งŒ์•ฝ v์™€ w๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐฉํ–ฅ์ด๋ผ๋ฉด (-1)์„ ๊ณฑํ•ด์ฃผ๋ฉด ๋œ๋‹ค

 

๐ŸŒธ ์•„๋ž˜ ๊ทธ๋ฆผ ์ฐธ์กฐ

 

 

→ ์ฆ‰, ๋‹ค์‹œ ๋งํ•˜๋ฉด (๋ฒกํ„ฐ a์— ๋Œ€ํ•œ ๋ฒกํ„ฐ b์˜ ์ •์‚ฌ์˜ ํฌ๊ธฐ) * (๋ฒกํ„ฐ a์˜ ํฌ๊ธฐ) = ๋ฒกํ„ฐ a์™€ ๋ฒกํ„ฐ b์˜ dot product

w/code

Q. ์ž„์˜์˜ vector v์™€ w๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•  ๋•Œ ๋ฒกํ„ฐ v๋ฅผ ๋ฒกํ„ฐ w์— projectiongํ•œ ๊ฒฐ๊ณผ

์ƒ๊ธด projected vectorํฌ๊ธฐ์™€ projected vector x์™€ y์„ฑ๋ถ„ ๊ฐ๊ฐ์„ ์ถœ๋ ฅํ•˜๋Š” function์„ ๋งŒ๋“ค์ž

 

def myProjection_norm(v, w):
  #v๋ฅผ w์— project

  value = np.dot(v,w)/np.linalg.norm(w)
  return value

def myProjection_coordinates(v, w):
  #v๋ฅผ w์— project

  value = np.dot(v,w)/np.linalg.norm(w)
  hat = w / np.linalg.norm(w)
  return value*hat

 

 


* ์ธ๋„ค์ผ ์ถœ์ฒ˜> https://ko.wikipedia.org/wiki/%EC%84%A0%ED%98%95%EB%8C%80%EC%88%98%ED%95%99

* ์ถœ์ฒ˜> w/dot product https://blog.naver.com/PostView.nhn?isHttpsRedirect=true&blogId=ao9364&logNo=221542210272 

* ์ถœ์ฒ˜> linear projection https://www.youtube.com/watch?v=LyGKycYT2v0 

'Math & Linear Algebra > Concepts' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Odds Ratio & log(Odds Ratio)  (0) 2022.07.11
eigenvalue & eigenvector  (0) 2022.05.14
Pearson & Spearman correlation coefficients  (0) 2022.05.13
Cramer's Rule (+exercise)  (0) 2022.05.09
Basic Derivative - ๋ฏธ๋ถ„ ๊ธฐ์ดˆ  (0) 2022.04.18

๋Œ“๊ธ€