본문 바로가기
728x90

전체 글427

Udemy - 머신러닝의 모든 것 (Simple Linear Regression) Simple Linear Regression Regression의 이론적인 부분은 이전에 몇번 다뤄봤기에 간단하게 넘어가고 python을 통해 직접 다루는 것에 초점을 맞추고자 한다. 위와 같이 1차방정식 형태로 설명된다. Simple Linear Regressin model Experience vs Salary #Importing the libraries import numpy as np import matplotlib.pyplot as plt import pandas as pd #Importing the dataset dataset = pd.read_csv('Salary_Data.csv') #데이터 이름인 첫줄 제외 X = dataset.iloc[:, :-1].values y = dataset.ilo.. 2023. 1. 28.
Baekjoon Training #1446 #1446 지름길 import heapq import sys input = sys.stdin.readline INF = int(1e9) #다익스트라 알고리즘 기본 함수 이용 def dijkstra(start): queue = [] distance[start] = 0 #시작 값은 0으로 설정 heapq.heappush(queue,(0,start)) #시작 노드부터 탐색 while queue: #queue에 남은 노드가 없으면 반복문 종료 cur_distance, cur_destination = heapq.heappop(queue) #탐색할 노드와 거리 가져옴 #현재 거리가 기존의 거리보다 크면 고려하지 않음 if cur_distance > distance[cur_destination]: continue f.. 2023. 1. 27.
Baekjoon Training #1620 #1620 List 이용한 풀이 import sys input = sys.stdin.readline n, m = map(int,input().split()) pkm_list=[] for i in range(n): pkmon=input() pkm_list.append(pkmon) for i in range(m): ans=input() if ans in pkm_list: print((pkm_list.index(ans))+1) else: print(pkm_list[int(ans)-1]) 처음에는 list를 이용하여 해결하려고 했다. 우선 포켓몬들을 입력받고 문제가 포켓몬을 물어보면 list에 존재할 것이니 그 인덱스를 찾아서 1을 더해서 번호를 출력해주고 번호를 물어보는 경우에는 list에 존재하는 내용이 아.. 2023. 1. 26.
Baekjoon Training #15650 #15650 #N,M 입력 N,M=map(int,input().split()) #빈 리스트 만들어둠 s = [] #dfs기반의 함수 def dfs(start): #s의 길이가 M이되면 입력중지하고 출력해줌 if len(s) == M: print(' '.join(map(str,s))) return #s의 길이가 M이 아닌경우 N회 반복 for i in range(start, N + 1): #시작점을 start로 설정 if i in s: #이미 존재하는 수인 경우 넘어감 continue s.append(i) #리스트에 수 입력 dfs(i+1) #시작점을 한칸 미뤄서 재귀호출 s.pop() #재귀호출 종료되면 제거 dfs(1) #함수실행 지난 글에서 백트래킹 연습을 더하보려고 했던게 생각나서 한문제 더 풀어보.. 2023. 1. 21.
Baekjoon Training #2751 #2751 import sys input=sys.stdin.readline n=int(input()) num_list=[] for i in range(n): x=int(input()) num_list.append(x) num_list.sort() for i in range(n): print(num_list[i]) 파이썬 내장함수인 sorted를 사용하려하니 시간초과가 발생하는 문제가 존재하였다. 이를 해결하기 위해서는 몇몇 방법이 존재한다. 우선 내장함수 대신 성능이 좋은 sorting algorithm을 이용하는 것이다. 그러나 이는 간단한 문제가 아니고 c++ 공부중에 다양한 sorting algorithm을 다뤄봤으니 python 버전으로 다시 공부할때 작성해보도록 하고 조금 더 합리적이고 간단한 .. 2023. 1. 21.
Udemy - 머신러닝의 모든 것 (Intro+Data Preprocessing) Machine Learning 머신 러닝은 딥러닝을 포함하는 큰 개념이다. 딥 러닝 강의를 듣는데 막히지는 부분이 있지는 않았지만 머신 러닝 강의를 듣고 오는것이 보다 수월하게 이해하는데 도움이 될 것 같고 순서를 맞춰서 듣는게 효율이 좋을 것 같아서 Machine Learning강의를 먼저 듣고자 한다. Why ML is the future 인간은 data에 둘러쌓여서 살고 있다. 2005년까지 인간이 생성한 data는 130exabyte 이다. 그리고 2010년까지 인간이 생성한 data는 1200exabyte 이고 2015년에는 7900exabyte이고 2020년에는 40900exabyte이다. 인간을 둘러싼 data는 기하급수적으로 증가함을 볼 수 있다. ML을 통해서 직접 다룰 수 없는 data.. 2023. 1. 15.
Baekjoon Training #15649 #15649 백트래킹 알고리즘에 대해서 공부하기 위해서 문제들을 풀어보고자하는데 우선 백트래킹 알고리즘은 DFS 방식을 기반으로 불필요한 경우를 배제하며 정답을 탐색하는 전략이다. DFS를 기반으로 하기 때문에 stack을 이용하여 퇴각을 하면서 다음 탐색을 진행하기 때문에 백트래킹이라고 불린다. #N,M 입력 N,M=map(int,input().split()) #빈 리스트 만들어둠 s = [] #dfs기반의 함수 def dfs(): #s의 길이가 M이되면 입력중지하고 출력해줌 if len(s) == M: print(' '.join(map(str,s))) return #s의 길이가 M이 아닌경우 N회 반복 for i in range(1, N + 1): if i in s: #이미 존재하는 수인 경우 넘어감.. 2023. 1. 15.
TensorFlow 2.0 (Operations) 기본 연산 tensor = tf.constant([[1, 2], [3, 4]]) tensor #출력 기본 연산에 앞서서 2by2 행렬의 tensor array를 만든다. 덧셈 tensor + 2 #결과 스칼라 곱 tensor * 5 #결과 Numpy function # Getting the squares of all numbers in a TensorFlow tensor object np.square(tensor) #결과 array([[ 1, 4], [ 9, 16]], dtype=int32) # Getting the square root of all numbers in a tensorflow tensor object np.sqrt(tensor) #결과 array([[1. , 1.41421356], [1... 2023. 1. 14.
Baekjoon Training #2178 #2178 미로 탐색 #deque class를 collections module에서 import from collections import deque N, M = map(int, input().split()) maze = [list(map(int, input())) for _ in range(N)] def bfs(maze, start): queue = deque([start]) #행의 개수 (세로 길이) n = len(maze) #열의 개수 (가로 길이) m = len(maze[0]) #전체 좌표의 distances값을 -1 default값으로 설정 distances = [[-1 for _ in range(m)] for _ in range(n)] distances[start[0]][start[1]] = .. 2023. 1. 10.
TensorFlow 2.0 (Basic) Advantages of TensorFlow 2.0 프로젝트에서 체중감량정도를 예측하는 시스템을 만드는 역할을 맡게 되어서 구글 코랩에 의존하지 않고 텐서를 다룰줄 알아야하는 상황이와서 텐서에 대해 공부하고자 시작한 강의이다. 텐서2.0의 장점 10가지 정도를 알아보고 텐서에 대해 공부를 시작하고자 한다. 1. Backed by Google 구글이 구축하고 지원한다는 것은 사용자들이 좋은 성능의 빠른 업데이트와 새로운 기능들을 많이 이용할 수 있다는 것을 의미한다. 2. Open Source and Free 텐서를 이용하면 SOTA Machine Learning framework를 무료로 이용할 수 있다. 3. Large and Vibrant Community 텐서 2.0의 커뮤니티는 굉장히 방대하여 지.. 2023. 1. 9.
Baekjoon Training #2563 #2563 n = int(input()) #색종이 수 입력 num_list = [[0] * 100 for _ in range(100)] #0으로 채워진 100 by 100 2차원 배열 생성 for _ in range(n): #색종이 수 만큼 반복 x,y=map(int,input().split()) #색종이의 좌하단 점 입력 #색종이의 좌하단 점으로부터 우상단으로 10 by 10 색종이가 걸치는 좌표의 값을 1로 설정 for i in range(10): for j in range(10): num_list[x+i][y+j] = 1 ans = 0 #결과 값을 0으로 세팅 #열을 기준으로 값이 1인 좌표들을 counting하여 그 수만큼 ans에 더해줌 for a in num_list: ans+=a.count(.. 2023. 1. 7.
Udemy - 딥러닝의 모든 것(ANN 구축하기) 인구 통계학적 세분화 모델 해당 모델은 고객중심의 산업에서는 부가 가치가 굉장히 높고 다양한 시나리오에서 사용될 수 있도록 할 수 있는 모델이다. 우선 이번에 구현해볼 ANN은 은행의 고객 이탈률이 증가하여 그 원인을 조사하여 추후의 새로운 고객에 대해서도 이탈할 고객을 예측하는 모델이다. 우선 자료를 보면 다음과 같다. Customer Id, Surname, CreditScore, Geography, Gender, Age, Tenure, Balance, NumOfProducts, HasCrCard, IsActiveMember, EstimatedSalary와 같은 변수들은 6개월 전에 조사된 자료이고 Exited 여부는 현재 이탈한 고객인지 알려주는 종속변수이다. 위 자료는 만명의 고객 샘플로 구성되어있.. 2023. 1. 6.
728x90