1.지도학습 이처럼 문제와 답을 함께 주고 기계를 지도해서 학습시켜 예측하게 하는 기계 학습을 지도학습이라고 하며, 머신러닝에서 가장 흔하게 사용되는 문제형이다. 지도학습 문제들은 그 안에서 또 다시 회귀(Regression)형과 분류형(Classification)으로 나눌 수 있다. 회귀형은, 데이터 레이블의 자료 형태가 실제 숫자일 때이다. 가령 키나, 몸무게 같은 변수를 생각해보자. 0부터 100까지의 숫자가 각각 그 의미를 가지는 실제 숫자형 데이터이므로 회귀형이다. 분류형 문제는, 데이터 레이블의 자료 형태가 '카테고리'형 변수 일 때이다. 예를 들어 음악 장르라는 변수를 생각해보자. 이 변수는 '힙합', '알앤비', '클래식' 같은 값을 가질 것이다. 이 값들은 수치적으로 아무 의미가 없고, ..
벡터 내적 : 1차원 x 1차원 가장 기본적인 경우로, 두 개의 input array가 모두 1차원 벡터인 경우입니다. 이 경우, element-wise 방식으로 각 원소를 곱한 값들을 더한 내적 연산을 수행합니다. import numpy as np # 1차원 x 1차원 a = np.array([1, 3, 5]) b = np.array([4, 2, 1]) np.dot(a, b) # 결과 : 15 참고로, 아래처럼 양쪽 array의 원소 개수가 불일치한다면, ValueError가 발생합니다. 고차원의 dot 연산에서도 곱할 element의 원소 개수가 일치하는지 꼭 체크해주세요. # 양쪽 array의 원소 개수 불일치 a = np.array([1, 3, 5]) b = np.array([4, 2, 1, 4]..
배열의 평균을 구할때는 mean 메소드를 사용합니다. 다음 ndarray에는 중간고사의 국어점수(10), 영어점수(20), 기말고사의 국어점수(14), 영어점수(16)이 저장돼 있습니다. score = np.array([ [10, 20], # 중간고사 [14, 16] # 기말고사 ]) 과목별 평균 점수를 출력하세요. [12. 18.] 정답 score.mean(axis=0) axis = 0 은 행방향 평균, axis = 1 은 열방향 평균입니다.
순위 함수 Oracle에서 제공하는 순위 함수는 아래와 같습니다. 해당 함수에 대한 설명보다는 실습을 통해 이해하는 것이 더 쉬울 수 있습니다. RANK : 동일한 값이면 중복 순위를 부여하고, 다음 순위는 해당 개수만큼 건너뛰고 반환한다. DENSE_RANK : 동일한 값이면 중복 순위를 부여하고, 다음 순위는 중복 순위와 상관없이 순차적으로 반환한다. ROW_NUMBER : 중복 관계없이 순차적으로 순위를 반환한다. RANK 함수 RANK 함수는 동일한 값이면 중복 순위를 부여하고, 다음 순위는 해당 개수만큼 건너뛰고 반환합니다. RANK 함수를 사용해서 조회한 결과를 보면, SAL(급여) 값이 동일한 경우에는 순위 값이 '2'로 중복 순위를 부여합니다. 중복 순위 다음에는 순위 값이 '4'입니다. ..
CASE ~ WHEN ~ THEN ~ ELSE ~ END [형식] CASE 컬럼명 | 표현식 WHEN 조건식1 THEN 결과1 WHEN 조건식2 THEN 결과2 ....... WHEN 조건식n THEN 결과n ELSE 결과 END 조건문과 조건문 사이에는 콤마(,) 를 사용하지 않는다. CASE 문은 반드시 END 로 끝내야 한다. CASE 표현식은 ANSI SQL 형식도 지원한다. 결과 부분은 NULL 을 사용해서는 안된다. case when x = y then a else b end : 조건 x =y 가 true 일 경우 a 이고 그렇지 않으면 b case when x < y then a when x = y then b else c end : 조건 x
셀프 조인: 자기 자신에게 테이블을 조인하는 법 셀프 조인은 여러 조인 중에서도 꽤나 독특한 아이입니다. 2개의 서로 다른 테이블 내에 있는 데이터를 하나의 테이블로 붙이는 대신 자기 자신 안에 있는 똑같은 데이터를 가져다 붙이니까요. 어째서 이미 존재하는 데이터를 조인을 통해 또 가져다 붙여 쓰고 싶은 것일까요? 위에서 살펴본 조인의 예시는 city 테이블 내의 열인 name 을 customer 테이블에 가져다 붙이고 싶었습니다. 그래서 2개의 테이블을 조인해 주었죠. 하지만 셀프 조인을 한다는 것은, 예를 들자면, customer 테이블의 데이터를 다시 customer 테이블에다가 가져다 붙이는 것입니다. customer 테이블을 가져와서 부연 설명을 해보도록 하겠습니다. customer_id fir..
n, k = map(int, input().split()) li = list(range(1,n+1)) ## 1부터 n까지 있는 리스트 ans = [] for i in range(n): ## n번 없애야함 if i == 0: a = k - 1 ## 처음엔 k-1번째 항이 대상이고 else: a += (k - 1) ## 다음부터는 1을 뺀 만큼 간격이 늘어남 ## 숫자가 제거되니 항 길이가 줄기 때문 if a >= len(li): ## a가 li의 길이를 넘어가면 a = a % len(li) ## 길이만큼 나눠준 나머지로 바꿈 ans.append(li[a]) ## 더해놓고 li.remove(li[a]) ## 없애고 print('') break print(ans[j], end=', ') print()