전체 글128 의사결정 나무(Decision Tree) 이 글에선 한 번에 하나씩의 설명변수를 사용하여 예측 가능한 규칙들의 집합을 생성하는 알고리즘인 의사결정 나무(Decision Tree)에 대해 다뤄보도록 하겠습니다. 1. 의사결정 나무(Decision Tree)란? 의사결정 나무는 데이터를 분석하여 이들 사이에 존재하는 패턴을 예측 가능한 규칙들의 조합으로 나타내며, 그 모양이 나무와 같다고 해서 의사결정 나무라 불린다. 아래 예시를 보자. 위 예시는 운동경기가 열렸다면 PLAY = 1, 그렇지 않으면 Play = 0으로 하는 이진분류 문제이다. 모든 사례를 조사해 그림으로 도식화하면 위와 같은 그림이 될 것이다. 그림을 해석해보자면 날씨가 맑고(sunny), 습도(humidity)가 70 이하인 날엔 경기가 열렸다. 해당 조건에 맞는 데이터들이 '경.. 2022. 1. 7. HTTP의 GET과 POST GET과 POST는 둘 다 HTTP 프로토콜을 이용해서 서버에 무엇인가를 요청할 때 사용하는 방식이다. 하지만 둘의 특징을 제대로 이해하여 기술의 목적에 맞게 알맞은 용도에 사용해야한다. GET 우선 GET 방식은 요청하는 데이터가 HTTP Request Message의 Header 부분에 url 이 담겨서 전송된다. 때문에 url 상에 뒤에 데이터가 붙어 request 를 보내게 되는 것이다. 이러한 방식은 url 이라는 공간에 담겨가기 때문에 전송할 수 있는 데이터의 크기가 제한적이다. 또 보안이 필요한 데이터에 대해서는 데이터가 그대로 url 에 노출되므로 GET방식은 적절하지 않다. (ex. password) POST POST 방식의 request 는 HTTP Request Message의 Bod.. 2022. 1. 7. 협업 필터링(Collaborative Filtering) 만약 보고 싶은 영화를 찾고 싶을 때 우리는 어떻게 할까? 내가 좋아하는 감독, 장르, 키워드의 영화를 찾아본다. 나랑 성향이 비슷한 친구들이 본 영화를 찾아본다. 이러한 방법들을 통해 보고 싶은 영화를 고르거나 추천받는다. 내가 좋아하는 감독, 장르, 키워드의 영화를 찾아보는 것은 Content Based Filtering이라고 할 수 있다. 나랑 성향이 비슷한 친구들이 본 영화를 찾아본다는 것은 Collaborative Filtering이라고 할 수 있다. 이 글에서는 Collaborative Filtering의 사용자 기반 협업 필터링에 대해 다루어 볼 것이다. 이 글에서는 기본적인 사용자 기반 협업 필터링알고리즘에 대해서만 소개한다. 협업 필터링의 성능 개선을 위한 여러가지 방법이 있지만 이 글에.. 2022. 1. 7. 삽입 정렬 [Python / 파이썬] 1. 삽입 정렬(Insertion Sort) 삽입 정렬은 특정한 데이터를 적절한 위치에 '삽입'한다는 의미에서 삽입 정렬(Insertion Sort)라고 부른다. 더불어 삽입 정렬은 특정한 데이터가 적절한 위치에 들어가기 이전에, 그 앞까지의 데이터는 이미 정렬되어 있다고 가정한다. 정렬되어 있는 데이터 리스트에서 적절한 위치를 찾은 뒤에, 그 위치에 삽입된다는 점이 특징이다. 삽입 정렬은 선택 정렬에 비해 실행 시간 측면에서 더 효율적인 알고리즘으로 잘 알려져 있다. 특히 삽입 정렬은 필요할 때만 위치를 바꾸므로 '데이터가 거의 정렬되어 있을 때' 훨씬 효율적이다. 선택 정렬은 현재 데이터의 상태와 상관없이 무조건 모든 원소를 비교하고 위치를 바꾸는 반면 삽입 정렬은 그렇지 않다. 선택 정렬 2022... 2022. 1. 6. 선택 정렬 [Python / 파이썬] 보통 정렬부터 공부하면 알고리즘의 효율성을 쉽게 이해할 수 있어 알고리즘 개론서 초반에 정렬 알고리즘을 설명하는 경우가 많다. 또한 일반적으로 문제에서 요구하는 조건에 따라서 적절한 정렬 알고리즘이 공식처럼 사용된다. 상황에 적절하지 못한 알고리즘을 이용하면 당연히 프로그램은 비효율적으로 동작하며 필요 이상으로 시간을 많이 소요한다. 그래서 알고리즘의 기초인 정렬 알고리즘을 통해 알고리즘 효율성의 중요성을 깨닫고자 글을 작성해보려 한다. 1. 선택 정렬(Selection Sort) 데이터가 무작위로 여러 개 있을 때, 이 중에서 가장 작은 데이터를 선택해 맨 앞에 있는 데이터와 바꾸고, 그다음 작은 데이터를 선택해 앞에서 두 번째 데이터와 바꾸는 과정을 반복하면 어떨까? 이 방법은 가장 원시적인 방법으로.. 2022. 1. 6. 백준 - 3020번 - 개똥벌레[파이썬(python)] 문제 출처 : https://www.acmicpc.net/problem/3020 3020번: 개똥벌레 개똥벌레 한 마리가 장애물(석순과 종유석)로 가득찬 동굴에 들어갔다. 동굴의 길이는 N미터이고, 높이는 H미터이다. (N은 짝수) 첫 번째 장애물은 항상 석순이고, 그 다음에는 종유석과 석순이 www.acmicpc.net 문제 개똥벌레 한 마리가 장애물(석순과 종유석)로 가득 찬 동굴에 들어갔다. 동굴의 길이는 N미터이고, 높이는 H미터이다. (N은 짝수) 첫 번째 장애물은 항상 석순이고, 그다음에는 종유석과 석순이 번갈아가면서 등장한다. 아래 그림은 길이가 14미터이고 높이가 5미터인 동굴이다. (예제 그림) 이 개똥벌레는 장애물을 피하지 않는다. 자신이 지나갈 구간을 정한 다음 일직선으로 지나가면서 .. 2022. 1. 5. 이전 1 ··· 16 17 18 19 20 21 22 다음