
MSE의 특징 [1] Mean Square Error는 예측값과 정답의 차이를 제곱하기 때문에, 이상치에 대해 민감하다. 즉, 정답에 대해 예측값이 매우 다른 경우, 그 차이는 오차값에 상대적으로 크게 반영된다. [2] 오차값에 제곱을 취하기 때문에 ⓐ 오차가 0과 1 사이인 경우에, MSE에서 그 오차는 본래보다 더 작게 반영되고, ⓑ 오차가 1보다 클 때는 본래보다 더 크게 반영된다. [3] 모든 함수값이 미분 가능하다. MSE는 이차 함수이기 때문에 아래와 같이 첨점을 갖지 않는다. RMSE의 특징 [1] MSE에서 루트를 취하기 때문에, [1], [2] 에서 나타나는 MSE의 단점이 어느 정도 해소된다. [2] MSE는 부드러운 곡선형으로 오차 함수가 그려지지만, RMSE는 그 MSE에서 루트를 ..
#1.데이터 import numpy as np x = np.array([1,2,3]) y = np.array([1,2,3]) #2.모델구성 from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense model = Sequential() model.add(Dense(4, input_dim=1)) model.add(Dense(5)) model.add(Dense(3)) model.add(Dense(3)) model.add(Dense(1)) 내가 사용할 모델은 시퀀셔 모델이다. 첫번째 밀집층을 더한다.(=레이어층 하나를 추가) 인풋레이어에 들어가는 데이터의 형태 차원은 1차원, 노드 4 두번째 레이어층 인풋값 4..

머신러닝 1. 머신러닝의 궁극적 목적 : 최소의 로스로 최적의 웨이트를 찾는다. 2. 방법 ⓐ 정제된 데이터를 x,y 값에 넣는다. 이때 x,y는 항상 쌍으로 이루어진 key-value 형태이다. ⓑ 랜덤 값이 주어지면 머신러닝이 선을 그린다. ⓒ 실제 데이터와 머신러닝이 그래프에 그린 선과의 오차를 비교한다. ㄴ 최소의 loss (=최소의 cost)를 찾는다. 이때 cost라고 지칭하는 이유는? 손실만큼 비용이 들기 때문에 ㄴ 즉, 손실 (=비용)을 최소화하는 값을 찾는다. ⓓloss 값을 반영해 머신러닝이 선을 다시 그린다. 손실(=비용)이 최소화 될때까지 반복하며, 오차가 0인 모델은 만들 수 없다. ⓔ오차가 가장 적은 선을 찾아낸다. 최적의 웨이트(가중치)로 모델을 형성한다. 3. key poin..

10872. 팩토리얼 ▼해설보기 더보기 1. 재귀함수 코드 def factorial(n): result = 1 if n > 0 : result = n * factorial(n-1) return result n = int(input()) print(factorial(n)) 2. for문 코드 n = int(input()) result = 1 if n > 0: for i in range(1, n+1): result *= i print(result) 1. 코드에 대한 전체적인 풀이 내용 *팩토리얼 (=계승) : 1부터 n까지 양의 정수를 모두 곱한 수이다. 0!=1로 약속하고 n!=n*(n-1)! 의 성질을 가진다. 이와 같은 팩토리얼의 특성을 토대로 코드를 작성했다. 0!=1의 성질을 가지기 때문에 입력받는..

1978번. 소수찾기 ▼해설보기 더보기 n = int(input()) numbers = map(int, input().split()) sosu = 0 for num in numbers: error = 0 if num > 1 : for i in range(2, num): # 2부터 n-1까지 if num % i == 0: error += 1 # 2부터 n-1까지 나눈 나머지가 0이면 error가 증가 if error == 0: sosu += 1 # error가 없으면 소수. print(sosu) 1. 코드에 대한 전체적인 내용 풀이 소수 : 1과 자기 자신으로 나눌 때만 나누어 떨어지는 자연수이다. 1은 소수가 아니고 2는 소수 중에 유일한 짝수이다. 2를 제외한 나머지 소수는 모두 홀수로 이루어져 있다...

1712. 손익분기점 ▼해설보기 더보기 a,b,c = map(int,input().split()) if b >= c: # 가변비용이 노트북 가격보다 같거나 크면 print(-1) else: print(a//(c-b)+1) 1. 코드에 대한 전체적인 풀이 이 문제는 최초로 이익이 발생하는 시점의 판매량을 출력하고 손익분기점이 존재하지 않으면 -1을 출력하는 문제이다. 손익분기점 계산은 간단한 수학식으로 풀 수 있다. 2. 총수입 = 고정비용 + 가변비용 위 식을 문제에서 주어진 알파벳을 이용하고 판매량을 N이라고 한다면 C*N = A + B*N으로 나타낼 수 있다. 이 식을 판매량인 N을 구하는 식으로 바꾸면 N= A/(C-B)가 된다. 이 식을 그대로 코드로 작성해서 문제를 풀었다. 3. if조건식으로 ..

11654. 아스키 코드 ▼해설보기 더보기 print(ord(input())) cf) chr( )함수 chr 함수는 ord 함수의 반대 기능을 한다. 아스키코드에 해당하는 숫자를 입력하면 그에 해당하는 문자열을 출력 한다. chr(100) d 11720. 숫자의 합 ▼해설보기 더보기 1. sum 함수를 이용 n = input() print(sum(map(int,input()))) 2. for문을 이용 n = input() nums = input() total = 0 for i in nums : total += int(i) # total= total+int(i) print(total) 1. sum함수 이용 처음에 입력받는 숫자의 개수 n은 입력만 받은 후 활용하지 않았다. 두 번째 입력받는 n개의 숫자가 ..

15596. 정수 N개의 합 ▼해설보기 더보기 1. sum 함수를 이용한 코드 def solve(a): return sum(a) 2. for문을 이용한 코드 def solve(a): total = 0 for x in a: total += x return total 1. 작성한 코드에 대한 전체적인 내용 solve(a) 함수는 정수 n개가 주어졌을 때 주어진 정수의 합을 구하는 함수이다. 함수를 생성할 때는 def 예약어를 이용하면 된다. 함수가 실행해야 하는 문장은 들여 쓰기 해서 작성하고 반환하는 값은 return을 이용해서 작성한다. 함수의 이름은 함수의 생성자가 직접 만드는데 이번 문제는 solve( )라는 함수 이름이 주어져서 그대로 사용하였다. 2. sum함수를 이용해서 한줄로 작성 가능하다. ..

10818번. 최소, 최대 ▼해설보기 더보기 N = int(input()) a = list(map(int,input().split())) print(min(a), max(a)) 자료를 리스트 형태로 저장한 후, 최댓값과 최솟값을 도출한다. 2562번. 최댓값 ▼해설보기 더보기 1. for문 코드 numbers = [] for _ in range(9): i = int(input()) numbers.append(i) print(max(numbers)) print(numbers.index(max(numbers))+1) 2. for문을 list comprehension으로 작성한 코드 numbers = [int(input()) for _ in range(9)] print(max(numbers)) print(nu..
while 문 - 조건이 만족하는 동안 끝없이 반복 cf ) for 문은 리스트와 같은 반복 대상에서 값을 하나씩 꺼내서 반복 작업을 수행 while 조건: 실행 명령문1 실행 명령문2 실행 명령문3 .... ▶ 예제1 customer = "토르" # 손님 index = 5 # 부르는 횟수, 총 5회 while index >= 1: # 부르는 횟수가 1 이상인 경우에만 반복 실행 print("{0}, 커피가 준비 되었습니다. {1} 번 남았어요.".format(customer, index)) index -= 1 # 부르는 횟수 감소 if index == 0: # 5번 모두 불렀다면 print("커피는 폐기처분되었습니다.") 토르, 커피가 준비 되었습니다. 5 번 남았어요. 토르, 커피가 준비 되었습니다...