목록전체 글 (90)
오랑우탄의 반란
오늘도 오랑이는 문제를 풉니다. 1484. Group Sold Products By The Date 풀이 과정 products 칼럼 출력 방법 외에는 쉬운 문제입니다. 우선 아래와 같이 코드를 작성해줍니다. SELECT SELL_DATE, COUNT(DISTINCT PRODUCT) AS NUM_SOLDFROM ACTIVITIESGROUP BY 1ORDER BY 1; 이제 products 칼럼을 추가해야 하는데, product 의 각 행을 sell_date 기준으로 묶어서 쉼표(,)로 구분지어 오름차순으로 한 줄에 나열되게 출력해야 하는데요, CONCAT 을 바로 떠올리겠지만 그룹화가 어려워 보입니다. 이때 사용할 수 있는 함수가 바로 GROUP_CONCAT 입니다. GROUP_CONCATGROUP ..
오늘도 오랑이는 문제를 풉니다. 대충 만든 자판 풀이 과정keymap 글자들의 최소 인덱스+1 목록targets 단어의 각 글자에 대해 위 목록에 있는지 확인있으면 인덱스+1 answer에 append없으면 -1우선 keymap의 인덱스 목록을 저장해줄 딕셔너리를 만듭니다. def solution(keymap, targets): answer = [] key_dict = {} #key_dict에 각 글자별 최소 인덱스값 저장 for i in keymap: for idx, char in enumerate(i): #keymap 단어에서 각 글자의 인덱스와 글자 짝에 대해 if char not in key_dict: key_..
딥러닝 Deep Learning 딥러닝은 머신러닝의 한 분야로, 신경세포 구조를 모방한 인공 신경망(Artificial Neural Networks)을 사용합니다. 딥러닝은 머신러닝과 기본적인 흐름은 같지만 내부 구조가 다르며 자연어 처리와 이미지 처리에 최적화 되어 있는 기법입니다. 둘 다 데이터로부터 가중치를 학습해서 패턴을 인식하고 결정을 내리는 알고리즘 개발과 관련된 AI의 하위 분야입니다. (머신러닝은 데이터 안의 통계적 관계를 찾아내 예측/부류를 함) 인공 신경망(Artificial Neural Networks): 인간의 신경세포를 모방하여 만든 망(Networks)퍼셉트론(Perceptron): 인공 신경망의 가장 작은 단위앞서 선형회귀에서 키와 몸무게를 예제 데이터를 퍼셉트론으로 표현하..
지금까지 머신러닝의 대표적인 지도학습인 회귀/분류를 살펴봤는데요머신러닝의 다른 종류인 비지도학습과 그 대표적인 예시 K-Means Clustering을 알아보겠습니다. 비지도학습이란? 데이터의 유사성을 기반으로 레이블링해서 답을 지정하는 작업정답이 없는 문제이기 때문에 주관적인 판단이 개입됨예시) 고객 특성에 따른 그룹화 (헤비유저 vs 일반유저) K-Means Clustering 이론K개의 군집 수 설정임의의 중심점 선정해당 중심점과 거리가 가까운 데이터를 그룹화 데이터 그룹의 무게중심으로 중심점 이동중심점을 이동했기 때문에 다시 거리가 가까운 데이터 그룹화 위 과정 3~5번 반복장점- 일반적이고 적용이 쉬움단점- 거리 기반 가까움 측정이기 때문에 차원 많을수록 정확도 떨어짐- 반복 횟수가 많을수록 ..
선형회귀, 로지스틱회귀 외의 대표적인 회귀/분류 모델을 추가적으로 살펴보겠습니다. 의사결정나무 Decision Tree의사결정 규칙을 트리 구조로 나누어 전체 데이터를 n개의 소집다능로 분류하거나 예측을 수행하는 분석법 장점- 쉽고 해석하기 용이- 다중분류, 회귀에 모두 적용 가능- 이상치에 견고하고 데이터 스케일링 불필요 (데이터의 상대적 순위를 고려하기 때문)단점- 과적합 오류: 나무 성장이 너무 많으면 과적합 오류- 불안정성: 훈련데이터에 민감하게 반응해 작은 노이즈에도 나무 구조가 크게 달라짐라이브러리sklearn.tree.DecisionTreeClassifiersklearn.tree.DecisionTreeRegressor namedetails루트노드 root nodeDT 시작점, 1차 분류조..
오늘도 오랑이는 문제를 풉니다. 문자열 나누기 풀이 과정s의 각 글자 i iterate 해서 첫 문자 x와 같은지 비교같으면 same +=1다르면 diff +=1same = diff 이면 answer += 1, same&diff 값 초기화, x=i우선 answer, same, diff 를 모두 0으로 설정해두고 시작합니다.처음에는 answer 와 same 을 1로 두고 시작했었는데, 이럴 경우 첫 번째 x에 대해 중복으로 same이 카운트되기 때문에 틀립니다. 또한 반복문 내에서 처음에는 same==diff 조건을 i==x 이후에 뒀는데 이렇게 되면 초기화가 제대로 이루어지지 않기 때문에 순서를 아래와 같이 해야 합니다. for i in s: if same == diff: answer ..
지금까지 배웠던 이론을 바탕으로 실제 데이터분석의 전 과정 실습을 해보겠습니다. 데이터분석 예측모델링 w. 타이타닉 데이터지난 모델링 실습에서 활용했던 타이타닉 데이터로 분석을 진행하겠습니다. Titanic - Machine Learning from Disaster | Kaggle www.kaggle.com 칼럼별 데이터를 체크해둡니다. ColumnDetailsDatatypePassengerId 승객 ID (PK)int64Survived (Y)사망 (0) 생존 (1) int64Pclass 티켓 등급 (1,2,3)int64 (범주형)Name 이름objectSex 성별 object (범주형)Age 나이float64 SibSp 형제와 배우자 수int64 Parch 부모와 자식 수int64 Ticket ..
머신러닝 로지스틱회귀분석 실습앞서 배원 로지스틱 회귀를 사용한 분석 분류를 직접 파이썬에서 데이터셋으로 실습해보겠습니다. 캐글 타이타닉 예측 대회의 Titanic - Machine Learning from Disaster 데이터를 사용하겠습니다. Titanic - Machine Learning from Disaster | Kaggle www.kaggle.com 대회 주제는 탑승한 승객의 정보를 바탕으로 생존 유무를 예측하는 분류 문제였는데요종속변수 Y를 사망(0) / 생존(1)으로 두고 독립변수 X를 티켓등급, 성별, 요금 등으로 넣어보며 확인해보는 분류 분석을 아래의 단계에 따라 진행하겠습니다. (데이터 전처리 단계는 생략하고 바로 회귀분석만 진행한다는 점 참고) 데이터 확인변수 설정 및 로지스틱..