목록공부/Algorithm (8)
여정의 기록
HackerRank의 The Minion Game은 String을 하나 입력받고 해당 String으로 만들 수 있는 철자 조합을 시작하는 철자가 모음인지 자음인지를 나누어 자음 시작 조합과 모음 시작 조합 어떤 것이 더 많은지 가려내는 문제였다. 여기서 고민된 것은 어떻게 해서 철자 조합을 만들어 낼 것이냐 였는데, 처음에는 사람들이 올려둔 답을 보고도 이해가 안됐다. 그러다가 종이에 적어보며 문득 이해가 됐는데, 1. string input 으로 BANANA 를 입력값으로 받는다. s = input() 2. AEIOU 로 시작하는 vowel의 경우와 아닌 경우를 나눈다. vowels = 'AEIOU' if s[0] in vowels: ~~ else: ~~ 3. vowel인지 아닌지를 나누기 전에 사실 ..
MySql에서 문자열 데이터 VARCHAR를 다뤘다. 서울시 성북구 강남동 123번지 위와 같은 형태의 데이터 중 '성북구'를 추출하려면 어떻게 해야할까? 파이썬이라면 split() 함수와 index 성질을 이용할 수 있겠다. MySql은 Split함수가 없다. 그래서 SUBSTRING_INDEX 를 사용해보기로 한다. SUBSTRING_INDEX("서울시 성북구 강남동 123번지", " ", 2) SQL문의 인덱스 값은 1부터 시작함을 상기하자. " " 공백을 기준으로 문자열을 나누고 2번째 인덱스 위치의 VARCHAR을 반환한다. "서울시", "성북구", "강남동", "123번지" 에서 "성북구"를 추출할 수 있다.
MySql에서도 반복문을 이용해 원하는 조건의 정보로 추출할 수 있다. WITH RECURSIVE 테이블명1 AS ( 원하는 조건 반복문 ... ) SELECT 테이블명1.SELECT된 값 , IF문 일단 상단과 같이 원하는 테이블1을 생성하고 해당 가상 테이블을 아래에서 다시 수정하게 된다. 반복문의 경우 SELECT 0 AS CNT UNION ALL SELECT CNT + 1 FROM 테이블명1 WHERE CNT < 10 1. 초기값을 설정한다. 2. UNION ALL을 이용해 반복문을 덧붙일수 있다. 3. SELECT에 원하는 결과물을 적으면 된다. 3. WEHRE에 반복문의 조건을 쓴다. SELECT 테이블명1.CNT , CASE WHEN 테이블명2.CNT IS NULL THEN 0 ELSE CN..
데이터 값 중 특정 알파벳이 들어있는 것을 추출하고자 할때. LIKE와 %를 사용할 수 있다. WEHRE COL1 LIKE '%AS%' 원하는 조건이 여러개인 경우, AND 를 사용한다. WHERE A AND B 대소문자 상관없이 데이터를 추출하고 싶은 경우 임의로 해당 컬럼값을 대/소문자 중 하나로 변환한다. WHERE UPPER(COL1)

새로운 데이터가 들어왔을 때 기존 데이터와 비교해서 어떠한 판단을 예측하는 것이라고 한다. 이러한 데이터를 바탕으로 모델을 만들고 데이터를 입력하면 결과가 도출된다. 그 과정은 아래와 같이 차례로 볼 수 있다. 위 과정에서 analysis, 전처리, classify 하는 과정은 프로젝트를 진행하면서, 일괄적으로 위와 같은 과정은 아니라는 것을 알았다. 정규화를 시키고 전처리를 하거나, 전처리를 하고 정규화를 시킬수도 있고, 모든 처리가 끝난 후 시각화하여 데이터를 살펴볼 수도있었다. 데이터가 많을 수록 모델의 정확도가 높아지기 때문에 데이터의 일부분이 손상되어도 최대한 살릴수 있는만큼 살려서 사용하기도 했었다. 그리고 데이터의 유무가 굉장히 중요하고, 데이터가 없으면 만들어내야하는 상황에서 파생변수를 만..
추천시스템 종류 협업필터링(CF) 가장 흔하게 보는 협업필터링 거래 데이터 -> 고객에게 A상품 추천하기위해 -> 상관관계가 높은 고객 추출(B고객) -> B고객 구매상품 중 A고객 미구매 상품 추천 연관규칙 대규모 거래 데이터 -> 거래가 발생하는 규칙을 찾는다. 연관규칙(rule) 장바구니 분석 조건이 만족되면 결과가 발생된다. 특정사건 발생 -> 또 다른 사건 발생되는 규칙을 찾는다. 수천, 수만개의 규칙이 나온다 -> 그 중 강력한 규칙을 뽑아낸다. 예를 들어, {맥주} -> {땅콩}, {남성, 금요일, 맥주} -> {기저귀} 상품추천, 진열, 패키징 번들링, 홈쇼핑 채널, 방송 순서, 의료계(암데이터 분석- 단백질서열, DNA재현) {증상} -> {질병} X, Y : 아이템 집합(장바구니), x..
pruming 가지치기 ( 상관없는 데이터가 포함되는 경우의 수를 제외시킨다) datarules 463개로 감소 summary(data) set of 463 rules : 463개의 rule로 구성 rule length ... sizes : 한 건당 구매한 총 상품수 (해당 행의 총합) lift max 값은? 정렬을 해보자 inspect(sort(data, by="lift")[1:30]) # lift열 기준 정렬 특정 데이터에 대한 연관규칙을 검색 beefrules
표준화의 평균 0 평균(0)보다 표준화한 값이 크면 값의 크기가 큰 것으로 해석할 수 있다. 수치를 보고 데이터를 해석할 수 있어야 한다. 집단에 대해 단정짓지 말 것. 표준화된 값을 가지고 클러스트의 특징을 보는 방법과 aggregate를 이용해 원하는 컬럼값이 클러스트에 대해 어떻게 형성되어있는지(해당 클러스트의 특징) 확인할 수 있다. 응집력 최대화 == 거리 최소화 == 거리 값이 작아야 한다. 클러스트를 행한 다음 시각화를 통해 데이터가 어떤지 괜찮은지, 이상한지 확인해야 한다. 클러스터링이란? 군집 분석, 특성이 비슷한 데이터끼리 묶어주는 머신러닝 기법. 비지도 학습 방법. 데이터 간의 유사도를 이용. 사전에 레이블에 대한 정보가 없다. Supervised Learning(감독학습, 지도학습,..