본문 바로가기

분류 전체보기

(248)
[데이터 사이언스 시작하기] Jupyter Notebook - 파이썬으로 프로그래밍하는 방법으로는 텍스트 에디터 + 커맨드 라인, IDE, Jupyter Notebook이 있습니다. - cmd창에 pip install jupyter로 설치를 진행한 후, cmd창에 jupyter notebook이라고 입력하여, 웹 브라우저에서 실행합니다. - jupyter notebook에는 command mode와 edit mode가 있습니다. command->edit은 셀에 커서를 클릭하거나, enter를 누르면 되고, edit->command는 esc를 누르면 됩니다. 또한, 박스 하나하나를 셀이라고 부릅니다. - Ctrl + enter로 셀 하나를 실행 시킬 수 있습니다. command 모드에서 a를 누르면 위에, b를 누르면 아래에 새로운 셀이 생깁니다. 또한, d를 연..
[데이터 사이언스 시작하기] 데이터 사이언스란? - 데이터 사이언스는 여러가지 능력을 요구합니다. 데이터 사이언티스트는 가치를 더할 수 있는 일을 찾고, 데이터를 이용해서 문제를 해결합니다. - 데이터 사이언스에는 엄연히 순서가 존재합니다. 딥러닝을 시작하기 전에 데이터 사이언스 기본기를 배우는 것이 좋습니다. - R과 Python이 데이터 사이언스에서 양대산맥을 이루고 있습니다. R은 통계와 시각화만을 위한 툴입니다. 파이썬은 다양한 용도에서 사용되므로, 다른 분야로 넘어가기 편합니다. - numpy, pandas, tensorflow 등의 등장으로 Python이 R보다 인기가 많아졌습니다. - 데이터 사이언스의 진행 순서는 문제 정의하기, 데이터 모으기, 데이터 다듬기, 데이터 분석하기, 데이터 시각화 및 커뮤니케이션입니다.
[머신 러닝 기본기] 선형대수학 필요한 만큼만 배우기 - 선형대수학은 일차식이나 일차 함수를 공부하는 학문입니다. - 행렬은 행과 열을 1부터 count합니다(0부터 시작이 아닙니다). - 벡터는 열이나 행이 하나밖에 없는 행렬입니다. 행 벡터보다 열 벡터를 많이 사용하기에, 그냥 벡터라 하면, 열 벡터를 의미합니다. 보통 행렬은 대문자(A), 벡터는 소문자(a)로 나타냅니다. -
[머신 러닝 기본기] 머신 러닝이란? - 데이터가 많아지고, 컴퓨터 성능이 좋아지고, 머신러닝의 활용성이 증명되어서 머신러닝은 핫해졌습니다. - 딥러닝은 머신 러닝 기법 중 하나입니다. 층이 "깊어"진다.->"딥"러닝 - 머신 러닝은 지도 학습, 비지도 학습, 강화 학습 3가지로 분류됩니다. - 지도 학습(Supervised learning)은 "답"이 있고, 이 답을 맞추는 게 학습의 목적입니다. 비지도학습에는 답이 없습니다. - 지도 학습에는 분류(Classfication)와 회귀(Regression) 2가지가 있습니다. 분류는 스팸인가 아닌가 하는 문제이고, 회귀는 무수히 많고, 연속적인 값 중에서 답을 찾는 문제입니다. - 지도 학습을 할 때에는 학습 데이터의 답을 꼭 정해줘야 합니다. - 비지도 학습에는 "답"이 없고 이 답을 맞추..
[Python] 백준 10026번 : 적록색약 (G5) #문제 www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net #풀이 & 학습한 내용 R,G가 구분될때와 R,G가 구분안될때의 2차원 리스트를 따로 만들어줘서 그래프를 탐색하면 되는 문제입니다. 그동안은 전역변수로 인자를 통해 전달하지 않았던 것들이 상황이 2가지가 되어 인자로 상황에 맞는 것을 전달해줘야 했습니다. 이때, python은 mutual type이면 인자로 받은 변수를 직접 변경할 수 있습니다. cf) www.pymoon.com/entry/Pyt..
[Python] 백준 2583번 : 영역 구하기 (S1) #문제 www.acmicpc.net/problem/2583 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net #풀이 & 학습한 내용 단지번호붙이기(supremo7.tistory.com/176)에서 초반에 그래프를 채워주는 것만 추가된 문제입니다. 나눠진 영역의 개수와 나눠진 영역 각각의 넓이를 구해야 합니다. 이는 BFS나 DFS로 그래프를 탐색해서 경로가 있는 vertex들을 살펴볼 수 있습니다. #소스코드 from collections import deque #bfs에서 큐 쓰기위해 im..
[Python] ★ 백준 4963번 : 알파벳 (G4) #문제 www.acmicpc.net/problem/1987 1987번: 알파벳 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으 www.acmicpc.net #풀이 & 학습한 내용 백트래킹의 기본 동작원리를 이해할 수 있는 문제입니다. dfs를 수행하기 전에 방문처리를 하고, dfs를 수행한 후에는 방문처리를 해제해 줘야하는 것이 문제의 핵심입니다. bfs로의 풀이에 대해서도 좀 더 고민해볼 필요가 있습니다. #소스코드 import sys input=sys.stdin.readline #시간초과 방지 dx=[0,0,1,-1] dy=[1,-1,0,0] #..
[Python] 백준 4963번 : 섬의 개수 (S2) #문제 www.acmicpc.net/problem/4963 4963번: 섬의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도 www.acmicpc.net #풀이 & 학습한 내용 유기농 배추(supremo7.tistory.com/179)와 같은 문제이나, 다른 점은 대각선으로 있는 것도 연결 된다고 보는 것입니다. 이는 dx,dy에 대각선 4방향만 추가해주면 됩니다. #소스코드 from collections import deque #bfs에서 큐 쓰기위해 dx=[0,0,1,-1, 1,-1,1,-1] dy=[1,-1,0,0, 1,-1,-1,1] #상하좌..