목록분류 전체보기 (184)
영국 척척석사 유학생 일기장👩🏻🎓
1. 전치행렬 먼저, 행렬 A를 정의해 줍니다. A를 구해보면 아래와 같습니다. A의 전치행렬(transpose)를 구해보겠습니다. 더 간단한 방법은 .T를 쓰는 것입니다. 2. 단위행렬 단위행렬은 identity로 나타냅니다. 괄호 안에는 몇행몇열을 만들고 싶은지 쓰면 됩니다. 단위행렬의 특징은 어떠한 행렬과 곱하더라도 자기자신이 나온다는 것입니다. 3. 역행렬 역행렬은 Inverse로 나타냅니다. inv앞에 p를 붙이면 역행렬이 없더라도 가장 비슷한 값을 찾아줍니다. 이렇게 찾은 행렬이 실제 역행렬이 맞는지 확인하려면 역행렬의 성질을 이용해서 두 행렬을 곱했을 때 단위행렬이 나오면 됩니다. 확인해보니 100% 값이 맞아떨어지지는 않습니다.
1. 전치 행렬 A라는 행렬이 위와 같다고 가정해 봅시다. 이 A라는 행렬의 열과 행을 바꿔 봅시다. 이렇게 바꾼게 '전치 행렬' 이라는 것입니다. A의 전치, 즉 A의 transpose라는 의미에서 A위에 작은 T를 써서 표기합니다. 기존에 첫 번째 행이였던 게 첫 번째 열이 되고, 두 번째 행이였던 게 두 번째 열이 되었습니다. 마찬가지로 첫 번째 열이였던 게 첫 번째 행이 되고 두 번째 열은 두 번째 행이 되고, 세 번째 열은 세 번째 행이 되었습니다. 전치 행렬을 사용하는 이유는 무엇일까요? 행렬과 행렬을 곱할 때, 왼쪽 행렬의 열 수와 오른쪽 행렬의 행 수가 맞아떨어져야 합니다. 이런 식으로 행렬을 계산할 때 모양을 맞춰야 할 때가 있는데, 기존 행렬에서 모양이 맞지 않으면 전치 행렬을 이용해서..
1. numpy로 행렬 연산하기 먼저, numpy를 불러옵니다. 행렬 A는 직접 정해주고, 행렬 B는 랜덤한 수를 불러옵시다. 위와 같이 해주면 나오는 행렬은 아래와 같습니다. 두 행렬을 더해봅시다. A행렬의 스칼라곱을 구해봅시다. 두 행렬의 곱을 나타내는 방법은 두가지가 있습니다. 위와 같이 나타낼 수도 있고, 아래와 같이 @ 표시로 나타낼 수도 있습니다. 여러 연산을 섞으면 실수의 연산법칙과 마찬가지로, 괄호 안에 있는 것이 먼저 계산되고, 곱하기가 먼저 계산됩니다.
1. 요소별 곱하기 행렬을 곱하는 방법은 외적곱과 내적곱 두가지가 있습니다. 하지만 머신 러닝에서 내적곱과 함께 유용하게 쓰이는 곱셈 연산이 하나 더 있스빈다. 요소별 곱하기 (Element-wise Multiplication)이라고 하는 연산입니다. 행렬 덧셈 연산과 거의 똑같은 성질을 가집니다. 위의 두 행렬의 요소별 곱하기를 해봅시다. 표기는 동그라미를 써서 나타냅니다. 요소별 곱하기는 이름 그대로 같은 행과 열에 있는 요소들끼리 곱해서 새로운 행렬을 만드는 연산입니다. 실제로 계산을 하면 아래와 같습니다. 물론 같은 차원을 갖는 행렬 사이에만 연산이 가능합니다. 2. numpy로 요소별 곱하기 하기 두 행렬 사이에 * 연산자를 쓰면 요소별 곱하기가 됩니다. 결과를 확인하면 아래와 같습니다.
1. 행렬의 덧셈 위 행렬 A와 B를 더하는 방법은 간단합니다. 그냥 같은 위치에 있는 원소들끼리 더해주면 됩니다. 여기서 주의해야 할 점은 행렬을 더하기 위해서는 두 행렬의 차원이 같아야 합니다. 즉, 두 행렬의 행 수와 열 수가 같아야 한다는 겁니다. 2. 행렬의 스칼라곱 선형대수학에서는 행렬의 원소가 아닌 일반 수를 스칼라라고 합니다. 그럼 아래에서 i는 스칼라입니다. 따라서 행렬 A와 스칼라 i를 곱하는 것이기 때문에 스칼라곱이라고 하는 것입니다. 위의 스칼라와 행렬을 곱하는 방법은 간단합니다. 행렬의 각 원소마다 스칼라를 곱해주면 됩니다. 3. 행렬의 곱 위의 두 행렬을 곱하는 방법에 대해 알아보겠습니다. A는 2x3 행렬이고 B는 3x2 행렬입니다. 결과는 아래와 같습니다. 원리는 어렵지 않습..
1. numpy로 행렬 사용하기 먼저, numpy를 불러옵니다. array(행렬)을 이용하여 리스트를 불러줍니다. 행렬을 만들고 싶으면 2차원 배열을 만들어 줍니다. 2차원 배열이라는 것은 리스트 안에 리스트가 있다는 뜻입니다. 4x3 행렬을 만들어 보겠습니다. 위와 같이 입력하면 아래와 같은 행렬이 만들어집니다. 그럼, 3x2행렬을 만들어 볼까요? 2. 행렬에 랜덤한 값 넣기 그럼 3x5 행렬에 랜덤한 값을 넣어보겠습니다. 아래와 같이 랜덤한 값들이 행렬로 나옵니다. 3. 모든 원소의 값이 0인 행렬 모든 원소의 값이 0인 행렬은 zeros를 입력하면 됩니다. 2x4행렬을 만들어 보겠습니다. 여기서 주의할 점은 괄호를 두 번 써넣어야 한다는 점입니다. 4. i행 j열 원소 추출하기 파이썬에서는 0부터 ..
1. 선형 대수학 : 일차식(가장 높은 차수가 1인 다항식)이나 일차 함수(ex. y=3x+6)를 공부하는 학문입니다. 2. 머신러닝에 쓰이는 선형 대수학 개념 1) 행렬(Matrix) : 수를 직사각형 형태로 나열한 것 아래 행렬에서 A에는 12개의 수가 직사각형의 형태로 나열되어 있습니다. 여기서 이 하나하나를 A의 원소라고 부릅니다. 행렬의 가로줄을 행(row)라고 부릅니다. A에는 총 3개의 행이 있는데 위에서부터 1행, 2행, 3행이라고 부릅니다. 행렬의 세로줄을 열(column)이라고 부릅니다. A에는 총 4개의 열이 있는데 왼쪽에서 부터 1열, 2열, 3열, 4열이라고 부르면 됩니다. 프로그래밍을 할 때 배열이나 리스트의 인덱스를 1이 아니라 0부터 세기 때문에 헷갈릴 수 있습니다. 행렬에서..
1. 지도학습 (Supervised learning) 1) '답'이 있고 이 답을 맞추는 게 학습의 목적입니다. (지도학습과 비지도 학습의 주요 차이점) ex) 스팸 메일 분류 프로그램은 머신러닝 중 지도학습에 해당됩니다. ex) 아파트 가격 예측 프로그램도 아파트의 가격을 맞추는 것이기 때문에 지도학습입니다. 2) 지도학습은 분류와 회귀로 나뉩니다. 분류(Classfication) 회귀(Regression) ex) 스팸메일 프로그램 (스팸인지, 아닌지 분류) 결과값이 무수히 많고 연속적 ex) 아파트 가격 예측 (1억~1억20만) 3) 지도 학습을 할 때는 지도학습에 대한 답을 꼭 알려줘야 합니다. => 프로그램에게 수많은 문제와 그 문제에 대한 답을 가르쳐줍니다. (지도합니다.) 2. 비지도 학습 (..
Machine Learning 기계학습 : 기계가 학습을 통해 발전 => 경험을 통해서 스스로 업무 능력 향상 1. Program 과 Machine Learning Program 의 차이 Program Machnine Learning Program 인간이 직접 컴퓨터에게 규칙을 알려줘야 함 컴퓨터가 직접 규칙을 찾음 기계가 학습한다는 건, 프로그램이 특정 작업(T)를 하는 데 있어서 경험(E)을 통해 작업의 성능(P)을 향상시키는 것 2. 머신 러닝이 떠오르는 이유 머신러닝은 수십년 전부터 연구해 온 학문입니다. 하지만, 최근 들어 핫해진 이유는 무엇일까요? 1) 사용할 수 있는 데이터가 많아졌습니다. (위에서 언급한 경험(E)은 데이터라는 것이기 때문입니다.) 2) 컴퓨터 성능이 좋아졌습니다. : 의미..
1) Q1, Q3 구하기 데이터의 50% 지점을 의미하는 것이 중간값입니다. 이를 이용하면 Q1(데이터의 25%지점), Q3(데이터의 75%지점) 을 구할 수 있습니다. 예를 들어, 아래의 데이터에서 중간값은 86 입니다. 32, 48, 56, 78, 86, 96, 100, 120, 156 이 데이터를 중간값을 기준으로 둘로 나누었을 때, 첫번째 값부터 중간 값까지, 중간 값부터 마지막 값까지 둘로 나누었을 때, 왼쪽 묶음에서 의 중간값인 56이 25%에 해당하는 Q1값이라고 볼 수 있습니다. 반대로 오른쪽 묶음에 있는 중간값 100은 75% 지점, 즉 Q3이 됩니다. 하지만, 아래와 같이 Q1, Q2, Q3의 위치를 딱 정할 수 없는 경우도 있습니다. 데이터의 개수가 짝수일 때 중간값(Q2)를 구하려면..