전체 글 55

[LeetCode] - 배열 파티션 I

문제) n개의 페어를 이용한 min(a,b)의 합으로 만들 수 있는 가장 큰 수를 출력하라 https://leetcode.com/problems/array-partition/description/ Array Partition - LeetCode Can you solve this real interview question? Array Partition - Given an integer array nums of 2n integers, group these integers into n pairs (a1, b1), (a2, b2), ..., (an, bn) such that the sum of min(ai, bi) for all i is maximized. Return the maximized sum. leet..

[LeetCode] - 세 수의 합

문제) 배열의 입력받아 합으로 0을 만들 수 있는 3개의 엘리먼트를 출력해라 https://leetcode.com/problems/3sum/description/ 3Sum - LeetCode Can you solve this real interview question? 3Sum - Given an integer array nums, return all the triplets [nums[i], nums[j], nums[k]] such that i != j, i != k, and j != k, and nums[i] + nums[j] + nums[k] == 0. Notice that the solution set must not contain du leetcode.com 풀이) 1.브루트 포스 먼저 브루트포스..

[LeetCode] - 두 수의 합

문제) 덧셈하여 타겟을 만들 수 있는 배열의 두 숫자 인덱스를 리턴하라. https://leetcode.com/problems/two-sum/description/ Two Sum - LeetCode Can you solve this real interview question? Two Sum - Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target. You may assume that each input would have exactly one solution, and you may not leetcode.com 풀이) 1. 브루트포스로 풀기 c..

[python] 최댓값과 최솟값의 초깃값 설정

파이썬에서 최댓값과 최솟값의 초깃값을 지정하는 방법에 대해 알아보자 1. sys 모듈 사용하여 시스템이 가장 높은 값과 가장 낮은 값을 지정 mx = sys.maxsize mn = -sys.maxsize 2. float 이용해 무한대 값을 지정 mx = float('inf') mn = float('-inf') 💡주의! 좋지 않은 방법 mx = 999999 파이썬의 숫자형은 임의 정밀도를 지원하며 사실상 무한대의 값을 지정할 수 있다. 아무리 큰 수라 할지라도 얼마든지 더 큰 수가 지정될 수 있으므로, 이런 식으로 최솟값 변수에 임의의 값을 초깃값으로 지정하는 것을 지양해야 한다.

파이썬(Python) 2023.11.14

[Python] BeautifulSoup으로 HTML 파싱

웹 페이지를 표현하는 HTML 은 마크업 언어로 태그, 요소, 속성 등의 구성요소를 이용해 문서 구성을 구조적으로 표현하며, 구조화된 문서는 효율적으로 파싱(탐색)하고 원하는 정보를 찾아낼 수 있다. 쉽게 말해서, HTML은 일정한 규칙에 따라 작성되기 때문에, 우리가 그러한 규칙만 잘 파악할 수 있다면 웹 상에서 원하는 데이터를 손쉽게 가져올 수 있다는 말이다. 예를 들어보자 야구장에 수많은 관객들이 있다. 옆에 누군가가 멀리 보이는 관객들 중 한명을 집어서 저 사람한테 치킨을 가져다줘라고 하면 누구를 가리키는 것인지 쉽게 알 수 없다. 하지만 야구장의 객석은 구조화된 상태로 배열되어 있다. "A열 17번에 앉은 사람에게 치킨과 맥주를 가져다줘"와 같은 상태로 말할 수 있고, 우리는 누구를 지칭하는지 ..

파이썬(Python) 2023.11.07

Colab에서 압축 폴더 해제하기 (zip 파일 해제하기)

unzip unzip은 Linux에서 사용하는 명령어이다. Colab에서 unzip을 사용하는 방법은 두 가지이며 os module을 통한 방법이 빠르다 1. Command Line unzip [파일명] -d [저장위치] !unzip 데이터셋.zip -d 저장경로 2. OS모듈 Command Line 명령어를 그대로 os.system 함수 안에 입력 import os file_name = "파일이름" ouput_dir = "파일이 저장될 경로" os.system('unzip' + file_name + '-d'' + output_dir)

카테고리 없음 2023.11.06

파이토치(Pytorch)[4] - 선형 회귀(Linear Regression)

훈련 데이터셋과 테스트 데이터 셋 Hours(x) Points(y) 1 2 2 4 3 6 4 ? 어떤 학생이 1 , 2 , 3 시간 공부했을 때 각각 2 , 4 , 6 점을 받았다. 그렇다면 4시간을 공부한다면 몇점을 받을 수 있을까? 점수를 예측하기 위해서는 앞서 나온 정보를 이용해야 한다. 여기서 예측을 위해 사용하는 데이터를 훈련 데이터셋 , 학습이 끝난 후 모델이 얼마나 잘 작동하는지 판별하는 데이터 셋을 테스트 데이터셋이라고 한다. 모델을 학습시키기 위해서 데이터는 파이토치의 텐서의 형태를 가지고 있어야 한다. x_train = torch.FloatTensor([[1],[2],[3]]) y_train = torch.FloatTensor([[2],[4],[6]]) 가설 수립 선형회귀의 가설(직선의..

파이썬에서의 클래스

클래스(Class) 클래스(class)란 똑같은 무언가를 계속 만들어 낼 수 있는 설계 도면(과자, 틀) , 객체(object)란 클래스로 만든 피조물(과자 틀로 찍어낸 과자)를 뜻한다. 클래스로 만든 객체는 객체마다 고유한 성격을 가진다. 동일한 클래스로 만든 객체들은 서로 전혀 영향을 주지 않는다 . 다음은 파이썬 클래스의 가장 간단한 예이다. class Cookie : pass Cookie 클래스는 아무런 기능도 가지고 있지 않은 껍질뿐인 클래스이다. 하지만 이렇게 껍질뿐인 클래스도 객체를 생성하는 기능이 있다. a = Cookie() b = Cookie() 객체는 클래스를 만들고 1개의 클래스는 무수히 많은 객체를 만들어 낼 수 있다. Cookie() 의 결괏값을 return 받은 a와 b가 바로..

카테고리 없음 2023.10.26

파이토치(Pytorch)[2] - 경사하강법

경사하강법 경사하강법은 미분가능한 복잡한 함수가있을 때 해당 함수의 최소점을 찾기 위한 방법이다. 기본 개념은 함수의 기울기(경사)를 구하고 경사의 반대 방향으로 계속 이동시켜 극값에 이를 때 까지 반복시키는 것이다. 이러한 방법은 다음과 같이 많이 비유되기도 한다 앞이 보이지 않는 안개가 낀 산을 내려올 때는 모든 방향으로 산을 더듬어 가며 산의 높이가 가장 낮아니는 방향으로 한 발씩 내딛어 갈 수 있 🤔 경사하강법을 왜 사용할까? 일반적으로 인공지능은 손실함수를 통해 자신의 파라미터를 검증한다. 손실함수는 인공지능의 파라미터를 통해 나온 예측값과 실제 값의 차이라고 볼 수 있으며, 손실 함수 값을 가장 낮게 나오게 하는 파라미터들이 바로 최적의 파라미터이다. 그렇다면 손실함수를 미분하여 최소,최대값을..

데이터 부족 문제 완화 [2] - Transfer Learning (전이학습)

들어가며 만일 새로운 task에 대해서 동작하는 인공지능 모델을 개발하는 업무를 담당하게 되었다고 생각해보자. 새로운 task이기 때문에 먼저 레이블링된 데이터를 확보해야하는데, 이 data annotation 과정은 시간과 금전적으로 부담되는 작업일 뿐더러, annotation 품질에 대한 이슈도 있어 매우 어려운 작업이다. 이러한 어려움을 극복할 수 있는 방안으로는 Transfer Learning을 활용할 수 있다. Transfer Learning (전이학습) Transfer Learning은 데이터셋에서 학습하며 배웠던 지식을 다른 데이터 셋에서 활용하는 기술이다. 즉, 특정분야에서 학습된 신경망의 일부능력을 유사하거나 새로운 분야에서 사용되는 신경망의 학습에 이용하는 방법이라는 것이다. 전이학습은..