목록분류 전체보기 (82)
데이터 꿈나무
reverse, reversed는 파이썬에서 리스트의 요소를 뒤집을 때 사용합니다. 이 두개의 차이점을 알아보도록 하겠습니다. 📌 reverse reverse는 list 타입에서 제공하는 함수입니다. list.reverse() l = [' t', 'o', 'p'] # list타입 t = ('t', 'o', 'p') # tuple 타입 d = {'t': 1, 'o': 2, 'p': 3} # dict 타입 s = 'top' # string 타입 ------------------------------------------------------- l.reverse() # list의 순서를 뒤집어줌 t.reverse() # AttributeError: 'tuple' object has no attribute 'r..
📌 Bias란 무엇인가? Bias는 추정된 파라미터가 실제 파라미터와 다른 정도를 나타내는 스칼라 값입니다. 모델의 파라미터 θ를 추정했을 때, bias 값이 크다면, 추정된 파라미터가 실제 파라미터와는 상당히 멀리 떨어져 있음을 나타냅니다. 더보기 ✅ θ란 무엇인가? 머신러닝, 딥러닝에서는 데이터셋에 맞게 모델의 파라미터 θ를 훈련합니다.이 값을 변형해서 주어진 모집단의 데이터를 가장 잘 설명하는 데이터를 찾습니다.하나의 모델에는 아주 많은 파라미터가 있기 때문에, 그냥 통틀어서 파라미터들을 θ라고 합니다. 그렇다면 bias값이 작은 경우가 실제 파라미터와 값이 비슷할 것이고 대체적으로 bias값이 0인 경우가 좋습니다.
신경망 구조를 쉽게 이해하려면 벡터연산, 벡터의 "내적" 연산을 기억하면 된다. 벡터는 숫자는 숫자인데, 차원을 갖고 있어서 여러 개의 숫자들의 조합을 통해 결정되는 값이다. 예를 들어, 2차원 벡터는 숫자 두 개가 필요하고 2차원 평면 위에 점으로(또는 화살표로) 나타낼 수 있다. 마찬가지로 3차원 벡터는 숫자 세 개가 필요하고 3차원 공간 위에서 점으로 나타낼 수 있다. 1차원 벡터의 경우, 편의상 "스칼라"라고 한다. 각각 같은 차원의 벡터일 경우 사칙 연산을 할 수 있는데, 그중에 가장 널리 쓰이는 것이 "내적" 연산이다. 두 개의 다른 벡터에 대해서 각각의 같은 차원 값끼리 곱한 값을 모두 더하면 하나의 스칼라 값으로 도출된다. 예를 들어, A = (a1, a2, a3, a4, a5 ...)이고..
안녕하세요~ 파이썬 문제들을 풀어보다가 항상 sort, sorted의 정확한 차이를 모르고 쓰이는 형태만 알고 넘어갔었는데요, 이번에 제대로 파악하게 되어 정보를 공유하고자 이렇게 포스팅하게 되었습니다. 저처럼 헷갈리시거나 정확한 차이를 모르는 분들께 도움이 되셨으면 좋겠습니다!! 📌 sort, sorted 차이 먼저 sorted 함수는 정렬된 새로운 리스트를 리턴시켜줍니다. 반면에 sort 메소드는 아무것도 리턴시켜주지 않습니다.(None을 리턴시켜줌) some_list = [5, 7, 2, 3, 1] print(sorted(some_list)) # [1, 2, 3, 5, 7] print(some_list.sort()) # None 아래의 코드와 같이 sorted 함수는 some_list에는 영향을 주..
📌 문제 📌 코드 def solution(numbers): answer = 0 numbers.sort(reverse = True) return max(numbers[0]*numbers[1], numbers[-1]*numbers[-2]) sort 함수로 오름차순 정렬해준 뒤, reverse =True를 하여 내림차순 정렬해줍니다. (reverse 과정은 해주지 않아도 결과가 같습니다.) 그리고 이렇게 정렬해준 것의 앞에서 1,2번째와 뒤에서 1,2번째를 곱한 값이 최댓값이 될 후보들이기 때문에 이 두 값 중에서 max 함수로 감싸 최댓값을 출력해줍니다.
📌 문제 📌 코드 def solution(cipher, code): answer = '' for i in range(code-1, len(cipher), code): answer += cipher[i] return answer for문을 이용해서 code-1부터 cipher의 개수까지 code수만큼 띄어서 반복문이 진행되도록 했다. 차례로 i에 들어가게 된다. 여기에서 code에 -1을 해준 이유는, 인덱스가 0부터 시작되기 때문이다. 따라서 code가 4일 경우, i에는 차례대로 3번 인덱스(4번째), 7번 인덱스(8번째), 11번 인덱스(12번째), ....이렇게 진행되는 것이다. 결과적으로 cipher의 4(code)의 배수 인덱스가 빈 문자열인 answer에 들어가게 되고, 그에 해당되는 문자열이..
로그변환을 통해 왜도와 첨도를 가진 변수를 정규분포에 가깝게 해줍니다. 큰 수치를 같은 비율의 작은 수치로 변환하는 것입니다. 그리고 정규성을 높이고 분석(회귀분석 등) 에서 정확한 값을 얻기 위해 해줍니다. 선형 회귀 모델과 같은 선형 모델은 일반적으로 열(피처, feature)과 타깃값 간에 선형의 관계가 있다고 가정하고, 이러한 최적의 선형함수를 찾아내 결과값을 예측합니다. 또한 선형 회귀 모델은 피처값과 타깃값의 분포가 정규분포인 형태를 매우 선호합니다. 특히 타깃값의 경우 정규 분포 형태가 아니라 특정값의 분포가 치우친 왜곡된 형태의 분포도일 경우 예측 성능에 부정적인 영향을 미칠 수 있습니다. 따라서 선형 회귀 모델을 적용하기 전에 먼저 데이터에 대한 스케일링/정규화 작업을 수행하는 것이 일반..
📌 문제 📌 코드 def solution(my_string): answer = '' collection = ("a,e,i,o,u") for i in my_string: if i not in collection: answer += i return answer 이 방법은 모음이 아닌 문자를 판별해서 빈 문자열인 answer에 추가해주는 방법입니다. 우선 모음을 collection에 저장해둔 뒤 for 문을 이용하여 각 문자열을 i에 저장해줍니다. if문을 이용하여 collection에 i가 없을 경우, i를 answer에 반복문을 통해 차례대로 추가해줍니다. 📌 다른 풀이 def solution(my_string): collection = ("a,e,i,o,u") for i in collection: my_..
※ 유의해야 할 점 리스트 형태로 되어있는 값을 set으로 묶어준 뒤 적용시켜야 한다. 📌 교집합 set1 = set([1,2,3,4,5,6]) set2 = set([3,4,5,6,8,9]) print(set1 & set2) # {3, 4, 5, 6} print(set1.intersection(set2)) # {3, 4, 5, 6} 📌 합집합 set1 = set([1,2,3,4,5,6]) set2 = set([3,4,5,6,8,9]) print(set1 | set2) # {1, 2, 3, 4, 5, 6, 8, 9} print(set1.union(set2)) # {1, 2, 3, 4, 5, 6, 8, 9} 📌 차집합 set1 = set([1,2,3,4,5,6]) set2 = set([3,4,5,6,8,9]..
안녕하세요. 이번 포스팅은 제가 프로그래머스 문제를 풀어보다가 발견한 문법을 하나 소개시켜드리려고 해요~! 바로 '리스트 컴프리헨션(List Comprension)'이라는 문법인데요, 바로 시작해볼게요! 📌리스트 컴프리헨션(List Comprension) 이란? 컴프리헨션은 파이썬의 자료구조(list, dictionary, set)에 데이터를 좀 더 쉽고 간결하게 담기 위한 문법입니다. 반복문과 조건문을 결합하여 하나의 구문으로 만들어 담을 수 있는 형태입니다. 처음에는 낯선 생김새에 당황하실 수 있지만, 익숙해지면 정말 편한 문법입니다. 📌예제와 함께 살펴보기 리스트에 순차적으로 1부터 10까지의 값을 저장하고 싶을 때, 가장 단순한 방법으로 빈 리스트를 만들고 append 함수로 하나씩 추가하는 방법..