본문 바로가기

전체 글277

[Devcourse] 0427 TIL 1. 괄호 하나 빼먹고 90분갔다. 괄호 놓지지 말자. 특히 연산자 우선순위...기본적인거 놓치지 말자 ㅠㅠㅠ 2. deque나 set는 deque나 set상태로 반환하는데 왜 리스트로 안바꿨니... 기본적인기 놓치지 말라고! 2021. 4. 27.
[DS] 주성분 분석, PCA github.com/SeongwonTak/TIL_swtak/blob/master/DataScience/210321_PCA_Revisited.ipynb SeongwonTak/TIL_swtak Today, I learned. Contribute to SeongwonTak/TIL_swtak development by creating an account on GitHub. github.com 3/21일에 공부했던 내용을 재복습 하면서, 해당 내용을 어느정도 인용 및 추가 설명을 붙여보려 한다. 수행 코드는 github에 있으며 오늘은 PCA의 배경과 원리, 간단한 알고리즘만 알아보도록 하자. 차원의 저주 및 OverFitting 데이터 분석을 하다보면, feature가 1-2개인 경우는 거의 없을 것이고 수십,.. 2021. 4. 27.
[Linalg] 최소제곱법과 응용 프로그래머스 인공지능과정 Week 2 Day3 강의내용 관련. (사진 및 수식 출처) (증명 및 추가 comment들은 Freidberg LinearAlgebra를 참조하였습니다) 최소제곱법(Least Squares method) 최소제곱법이란, 해가 없는 선형 시스템에서 가장 가까운 해를 찾는 것이 목표이다. 행렬 A의 열공간(column space)에 b가 없을 경우, b와 가장 가까운 지점을 찾으려고 한다. 즉, 최소제곱법에서는 Ax=b의 해를 풀 수 없을 때, Ax'=b'에서, |b-b'|의의 값이 최소화가 되는 x'를 찾고 싶다. 구체적으로는 벡터 (b-b') 길이의 제곱길이를 최소화 하려고 하기에, 이를 Least squares method라 한다. 풀이) 주어진 행렬에 전치행렬을 곱한다. R.. 2021. 4. 27.
[Linalg] Orthogonal matrix Orthogonal Matrix and QR decomposition (프로그래머스 인공지능과정 week2 day3 내용 (수식 사진은 강의내용을 활용하였습니다.)) 벡터의 내적(inner product) (당연하지만, 실공간에서만 고려한다. 복소공간에서는 내적의 정의가 바뀐다) 대수적으로, 내적은 와 같이 정의된다. 실공간에서, u와 v의 내적은 로 정의됨을 상기시켜 보자. (여기서 theta는 두 벡터가 이루는 각의 크기) 다시 말해, 내적이 0이면 두 벡터는 직교하게 된다. (cos 90º = 0) 거꾸로, 실수공간에서 두 벡터가 주어지면 두 벡터가 이루는 각도도 자연스럽게 구할 수 있다. 투영 (projection) 한 벡터를 다른 벡터에 투영, (즉 수선의 발을 내리는 상황)을 고려해보자. 즉,.. 2021. 4. 27.
[Linalg] Change of Basis (프로그래머스 인공지능코스 Week2-Day2 강의 중 내용정리) Change of Basis 좌표계를 바꿔서 행렬을 나타내는 법에 대해 알아보자. (한줄 요약) Ax = Ib에서 I를 표준 좌표계로 보면 A는 새로운 좌표계, x는 b를 A로 표현한 새 좌표 값이라고 볼 수 있다. Coordinate System으로의 표현 (a,b)는 기저가 (e1, e2) 즉, 표준 좌표계인 경우에 가지게 되는 좌표값이다. (4,3)은 기저가 (v1, v2) 즉, 새로운 좌표계인 경우에 가지게 되는 좌표값이다. 즉, 좌표계를 바꿔 새로운 좌표값을 부여할 수 있다는 점이다. 역행렬로 표현 즉, 위의 내용을 다시 역행렬로 표현하면, 표준 좌표계에서 x 좌표값은, A의 역행렬의 열벡터들을 기저로 갖는 좌표계에서는 b로 표현.. 2021. 4. 26.
[Python] 2018 Kakao Blind Recruitment [3차] n진수 게임 N진수! N진수! N진수! N진수! 실제로 이걸 술게임에 쓰지말자. 마법사로 오해받는다. 카카오 2018 기출문제 - N진수 게임 (Lv 2 문제) 출처 : https://programmers.co.kr/learn/courses/30/lessons/17687 알고리즘 어렵진 않으나, 일반화는 불가능하다. 따라서 직접 구현해야 한다. (1) 튜브가 t턴까지 말하기 충분한 숫자의 개수까지만 모두의 답을 얻어놓고, (2) 파이썬의 슬라이싱 기능을 활용하여, 튜브의 답만 얻어버리자. 진법 계산을 별도의 함수를 통해 구현하면 코드가 간편해진다. 물론 이도 쉽게 string을 활용하여 계산 가능하다. 코드 def n_adic_convert(num, adic): # 0 ~ 15에 대응 string='012345678.. 2021. 4. 26.