전체 글

카테고리 없음

[서평] 아이리포 2023 빅데이터 분석기사 필기 개정판

이 글은 아이리포 빅데이터 분석기사 필기 도서 서평단에 당첨되어 작성하게 된 글입니다. ADsP 취득 후 ADP 실기 시험을 준비하고 있던 차에 한국데이터산업진흥원에서 주관하는 빅데이터 분석기사가 생겼다. 정보처리기사, 정보보안기사와 같은 등급의 '기사' 자격증으로 IT/데이터 분야의 기사 자격증이 하나 더 생긴 것! 자세한 내용은 공식 홈페이지에서 확인 가능하다 [K-Data] 빅데이터 분석기사 자격증 안내 바로가기 2023년 빅데이터 분석기사 시험일정은 아래와 같다. 이번주부터 🌟필기 접수🌟이니 참고할 것! ADP, ADsP (데이터 분석 (준)전문가 자격증)과 비교했을 때 '기사' 자격을 취득한다는 점에서 메리트가 있다. 나도 올해 안에 빅분기 취득을 목표로 필기 공부부터 차근차근 해보려 한다. 필..

Today I Learned

[파이썬을 이용한 웹 크롤링과 스크레이핑] URL과 퍼머링크

URL 구조 URL(Uniform Resource Locator)은 인터넷에 존재하는 리소스(파일 등)의 위치를 나타내는 식별자이다. 절대 URL과 상대 URL 절대 URL : https:// 등의 스키마로 시작하는 URL 상대 URL : 절대 URL을 기준으로 상대적인 경로를 잡는 URL //로 시작하는 URL /로 시작하는 URL 그 밖의 상대 경로 형식의 URL 상대 URL은 절대 URL로의 변환은 파이썬 표준 라이브러리의 urllib.parse 모듈에 포함되어 있는 urljoin() 함수를 사용한다. urljoin(기준이 되는 URL, 상대 URL) from urllib.parse import urljoin base_url = "http://example.com/books/top.html" url..

Data Science

사례연구: TF-IDF 기반 문서 검색 (내용기반 Content-Based 검색)

💬 인트로 문서검색이란, 사용자가 검색엔진에 질의(Query) 또는 문장을 입력해 검색엔진은 질의와 관련이 되는 문서들-검색결과를 찾아내어 사용자에게 제공하는 과정이다. 문서검색은 정보검색의 대표적인 사례로, 검색엔진에서의 검색어들이 질의가 된다. 🅰 Boolean Search 정보검색 분야에서 널리 사용되는 단순한 검색방법 Boolean Logic을 사용하여 질의문장을 만든다 (AND, OR, NOT 등) ex. (흥부 OR 놀부) AND NOT 제비 (장점) 검색 시스템이 단순히 각 문서가 질의 문장의 조건을 만족하는지를 테스트하면 되므로 구현이 쉽고 빠르며 많은 데이터를 쉽게 다룰 수 있다. (단점) 동음이의어, 다의어 검색에 취약하며 많은 양의 문서들을 검색 시 정확하고 복잡한 질의가 요구되어 일..

Data Science

추천시스템과 협업 필터링

💬 인트로 전자상거래에서의 상품이나 유튜브, 영화, 음악 스트리밍 서비스에서의 콘텐츠, SNS에서는 친구나 특정 그룹을 추천한다. 뉴스사이트에서는 기사를 추천하기도 하며, 검색 엔진에서는 검색에 대한 링크를 추천하는 등 고객이 선호하는 상품이나 서비스를 추천하는 것을 추천 시스템이라고 한다. 추천 시스템은 개인이나 그룹의 선호에 기반하여 고객, 사용자의 의사결정에 도움을 주는 것이다. 특히 Long tail business에서 필수적으로 사용되며, Long tail business란 소량의 다품종의 상품(주문형 콘텐츠, 도서 등)을 판매하는 사업으로 소그룹, 개별고객에 개인화된 마케팅 전략을 취한다. 이때 추천 객체를 항목(item)이라고 부른다. 1️⃣ 추천 시스템의 유형 내용기반(CB; Content..

Problem Solving/BOJ 백준

[BOJ] 백준 15686번 - 치킨 배달 (python)

문제 바로가기 (백준) 완전탐색 문제였고 아직 시간복잡도에 대한 개념이 덜 잡혀있음을 깨달았다. 13Cm의 조합은 100,000을 넘지 않으므로 시간 초과 없이 문제를 해결할 수 있다. (문제에서 치킨집 개수의 범위를 정해준 것은 분명 이러한 이유가 있었기 때문인 점 기억하기!) 13Cm을 파이썬 조합 라이브러리를 이용해 코드를 간결하게 만들 수 있다. 치킨집 중 M개를 고르는 모든 경우에 대해 치킨 거리의 합을 계산하여(완전 탐색) 치킨 거리의 최솟값을 구한다. 1️⃣ 무한대 표현(INF) : 최단 경로 알고리즘에서 도달할 수 없는 노드에 대한 최단 거리 = 1e9 ex. temp = 1e9 2️⃣ 조합(Combination) from itertools import combinations # combi..

Problem Solving/프로그래머스

[프로그래머스] 기둥과 보 설치(python) - 2020 카카오 신입 공채

문제 바로가기(프로그래머스) 아이디어 : 구현(시뮬레이션), 전체탐색 전형적인 시뮬레이션 문제로, 문제에서 제시한 구체적인 처리과정을 차례대로 코드화하면 된다. 문제를 제대로 이해하는 데 꽤 오랜 시간이 걸렸다. (카카오 코테의 대표적인 특징이랄까) 문제에서 제시해준대로 기둥과 보의 존재 요건을 그대로 적용한다. 설치할 때의 조건 만족 여부는 명확한 확인이 가능하지만, 삭제할 때의 조건 만족 여부는 주변의 여러 기둥, 보를 모두 확인해봐야 하므로 굉장히 까다롭다. 따라서 삭제를 요구할 때마다 일일이 전체 구조물을 확인하는 전체탐색 방법을 사용할 수 있다. 시간복잡도가 문제일 수 있지만, 문제에서 제한한 전체 명령의 개수는 최대 1,000개 이다. O(M^2)으로 하는 것이 가장 이상적일텐데, 이 문제의 ..

Problem Solving/프로그래머스

[프로그래머스] 자물쇠와 열쇠(python) - 2020 카카오 신입 공채

문제 바로가기(프로그래머스) 아이디어 : 구현(완전탐색), 2차원 리스트 회전 배열을 회전, 이동시켜야 한다는 부분에서 턱 막힌 문제였다. 회전 관련 부분은 따로 다뤘었고, 이동 문제는 배열을 직접 이동시킬 게 아니라, 기본 Lock 배열판을 크게 만들면 되는 거였다. 문제에서 제시한 자물쇠와 열쇠의 크기는 최대 20 x 20 이므로 완전 탐색을 이용해서 열쇠를 이동이나 회전시켜서 자물쇠에 끼워보는 작업을 전부 시도해봐도 무리가 없다. (400 * 400 = 16만, 일반적인 채점 환경에서는 1초에 2000만 ~ 1억 정도의 연산 처리 가능) 즉, 완전 탐색 아이디어를 사용하면 된다. 그리고 완전탐색을 수월하게 하고자 자물쇠 리스트의 크기를 3배 이상으로 변경하면 계산이 수월해진다. 그리고 그 중앙에 실..

Problem Solving/Algorithm, DS

[Python] 2차원 배열 90도 회전 알고리즘

코딩테스트 2020 KAKAO 신입 공채 를 풀다보니 2차원 배열의 90도 회전을 요구하는 문제가 있었다. 파이썬에서 2차원 리스트를 다룰 때 종종 사용되는 개념이므로 코드공식에 적어두고 필요할 때마다 꺼내봐야겠다. 그 전에 회전 알고리즘 원리를 먼저 파악해보자. 해당 2020 카카오 문제를 풀면서 2차원 배열 회전을 처음 맞닥뜨렸다면 절대 제시간 내에 풀지 못했을 것이다.. 보다 이해하기 쉽게 정리해봤다. 시계방향으로 90도 회전할 때, 회전 후의 행과 열 값을 알아야 한다. 2차원 배열이 회전할 때는 일정한 규칙이 있다. 90도 회전할 때의 위치를 모두 연결해보면 일정한 사이클이 있다. 사이클이 생긴다는 것은 요소의 합이 N일 가능성이 있다. (이때 N은 사각형의 크기) 그래서 나온 공식이 사진의 1..

Problem Solving/Algorithm, DS

[Python] 코딩테스트 '구현' 문제에 접근하는 방법

이코테 책에서 풀다가 복습할 내용들만 정리해본다. 자세한 문제는 '이것이 코딩테스트다 with 파이썬 (나동빈)' 책에서 확인하기 구현 문제란 특별한 알고리즘 기법은 필요 없는 정확한 풀이가 핵심이 되는 문제를 말한다. 풀이를 떠올리는 것은 쉽지만 소스코드로 옮기기 어려운 문제를 의미하며 나는 이런 부분에 많이 취약한 것 같다. - 알고리즘은 간단한데 코드가 지나칠만큼 길어지는 문제 - 특정 소수점 자리까지 출력해야 하는 문제 - 문자열이 입력으로 주어졌을 때 한 문자 단위로 끊어서 리스트에 넣어야 하는 문제 - 2차원 배열에서의 이동, 회전 등 까다로운 문제 특히 완전탐색과 시뮬레이션 유형은 모두 구현 유형으로 볼 수 있다. 완전탐색은 모든 경우의 수를 주저 없이 다 계산하는 해결 방법을 의미하고, 시..

Data Science

[Jupyter Notebook] 테마 및 폰트 설정하기

1. 주피터 테마 패키지 설치 (Anaconda Prompt 관리자 권한으로 실행해서 입력한다) pip install jupyterthemes 2. 사용할 폰트 고르고 추가하기 네이버의 D2Coding (←폰트 다운링크로 이동) 외부에서 설치한 폰트를 사용하려면 폰트 파일을 추가해줘야 한다. 먼저 stylefx.py 파일을 찾는다. 아래 사진과 같이 약 518번째 라인에 stored_font_dicts 함수가 있을 것이다. 말 그대로 주피터에서 사용가능한 폰트 모음들이다. fonts 종류인 'mono', 'sans', 'serif'에 모두 'D2Coding': ['D2Coding', 'D2Coding'] 을 추가해준다. (원하는 외부 폰트명을 넣어주면 됨. 다만 바로 다음에 추가할 폰트 .ttf 파일의 ..

blackon29
BlackSwon