본문 바로가기
728x90
반응형
SMALL

전체 글35

Graphy 인접행렬 이전에는 각 노드를 생성하고 이를 서로 연결하여 그래프를 만드는 이론과 코딩을 설명하였다. 하짐나 이건 그래프의 아주 기초적인 단계이며, 이를 바탕으로 여러 그래프가 존재한다. 그 중 그래프를 나타내는 다른 표현을 설명하겠다. 인접행렬이란? 그래프를 2차원 행렬로 표현 한것으로 각 노드 중간에 존재하는 엣지의 연결성을 나타내는 리스트이다. 이 행렬은 노드수 X 노드수의 크기를 가지며, 각 노드들의 연결 관계를 나타내고 있다. 예를 들어 아래와 같은 그래프가 존재하다고 가정하자. 이 그래프는 어떠한 가중치도 존재하지 않는 그래프이다. 이 그래프를 이렇게 표현 할 수도 있지만, 행렬로 나타내면 다음과 같이 표현 할 수 있다. 각 노드들간의 관계를 0과 1로 표현하였다. 연결이 되어있으면 1, 연결이 되어있지.. 2023. 6. 26.
그래프 만들고, 연결하기 이전까지는 그래프에 대한 이론을 설명하였다. 이번에는 이러한 이론을 바탕으로 그래프를 실제로 만들고 연결해보아야 한다. 코딩으로 옮기기전에 텍스트 파일을 미리 준비하였다. 안에는 임의로 넣어둔 서울 지하철 역이다. 파일 제목은 node.txt로 해두었다. 그리고 이 텍스트 파일을 파이썬 파일과 같은 경로에 넣어두었다. 다음은 그래프를 만드는 class를 구현하였다. class StationNode: # 지하철 역을 노드로 만들어 준다. def __init__(self, station_name): self.station_name = station_name 이렇게 클래스를 이용하여, 데이터가 들어올때 마다 노드를 하나 생성 한다. 그리고 다음에는 이렇게 생성된 노드를 하나의 그래프로 연결해주어야 한다. de.. 2023. 6. 23.
그래프 이론 그래프란? 연결 데이터를 저장 할 수 있는 자료구조를 의미한다. 자료구조에는 많은 형태가 있다. 예를 들어 스택, 큐, 링크드 리스트...등등 선형 구조, 비선형 구조, 계층 구조 등이 존재한다. 여기서 그래프는 선형적, 계층적 구조를 가진다. 그럼 왜 CS(Computer Science)에서 그래프를 다루어야 할까? 바로 그래프는 기존의 자료구조에서 표현 할 수 없는 데이터를 나타낼 수 있기 때문이다. 예를들어 SNS에서도 많이 사용된다. 누가 누구를 팔로우, 팔로잉 했는지 또 누구와 관련이 있는지 알아 낼 수 있기 때문이다. 또한 탐색에서도 많이 이용된다. 깊이 우선 탐색, 넓이 우선 탐색 등 다양하게 응용 및 이용 될 수 있기 때문이다. 이러한 그래프는 여러 종류가 존재하는데, 무방향 그래프, 방향.. 2023. 6. 20.
선형회귀(LinearRegression) 가설함수, 손실함수, 경사하강법 설명 이전에는 가설함수, 손실함수, 경사 하강법에 대해서 이론을 설명해왔다. 그럼 이제 앞에서 설명해온 이론을 정리하고 실제 코딩으로 나타내어야 한다. 가설함수 일단 이전에 설명한 가설함수는 하나의 데이터에 대해서 간단하게 설명하였다. h(x)= θ0+θ1x 가 가설함수이니까 수식으로 나타내면 다음과 같다. 실제로는 이렇게 x(1)부터 x(n)까지 여러개의 데이터가 존재 할 것이고, 배열의 형태 혹은 열거의 형식이 될것이다. 하지만 더 많은 데이터를 다루어야 하기에, 실제의 가설함수를 수식으로 나타내면 다음과 같다. 이렇게 여러개의 데이터가 가설함수에 들어갈것이고, 만약 더 많은 데이터가 있다면 θ(n)까지 존재해야 할 것이다. 손실함수 이전글에서 손실함수에 대해 설명하면서, 각 θ에 대해서 업데이트 하는 수.. 2023. 6. 5.
반응형
LIST