전체 글 83

리트코드| 온도 상승(MySQL)

문제어제 날짜와 비교하여 온도가 더 높은 모든 날짜를 찾는 솔루션을 작성해라. 나의 풀이)with w1 as (    select id, recordDate, temperature        from Weather),w2 as (    select id, recordDate, temperature    from Weather)select w1.idfrom w1,w2where datediff(w1.recordDate, w2.recordDate) = 1 and w1.temperature > w2.temperature임시테이블로 w1과 w2를 만들어 조건을 부여하여 조회하였다. 튜터님의 풀이)with temp1 as(    select id, recordDate, temperature , temperatur..

TIL/SQL 2024.08.22

비지도학습 K-Means Clustering 군집화

머신러닝의 비지도 학습과 K-Means에 대해서 학습하였다. 비지도학습데이터의 '유사성'을 기반으로 레이블링해서 답(y)를 지정하는 작업정답이 없는 문제이기 때문에 주관적인 판단이 개입된다.ex) 고객 특성에 따른 그룹화 (헤비 vs 일반)K-Means Clustering 이론1. K개의 군집 수 설정2. 임의의 중심점 선정3. 해당 중심점과 거리가 가까운 데이터를 그룹화4. 데이터 그룹의 무게중심으로 중심점 이동5. 중심점을 이동했기 때문에 다시 거리가 가까운 데이터 그룹화6. 위 3~5 과정을 계속 반복 위 그림에선 K 군집 수를 3으로 설정하였다. 장점일반적이고 적용하기 쉽다.단점거리 기반으로 가까움을 측정하기 때문에 차원이 많을 수록 정확도가 떨어진다.반복 횟수가 많을 수록 시간이 느려진다.몇 개..

TIL/머신러닝 2024.08.20

의사결정나무, 랜덤포레스트, KNN, 부스팅 알고리즘

의사결정나무 (Decision Tree, DT)의사결정규칙을 나무 구조로 나타내어, 전체 자료를 n개의 소집단으로 분류하거나 예측을 수행하는 분석 방법 1. 루트노드 root node : DT 시작점, 1차 분류조건2. 리프노드 leaf node : 루트로부터 파생된 노드3. 분류기준 criteria : 루트노드에서의 분류조건, 아래 예시에서는 여성0 남성1로 인코딩 후 0.5 기준으로 분류4. 불순도 impurity : gini 계수로 측정 (0-1), 낮을수록 분류가 잘 된 것, 리프로 갈수록 낮아짐.                                0 = 완벽한 순도 = 모든 샘플이 하나의 클래스                                1 = 완벽한 불순도 = 노드 샘플이 균..

TIL/머신러닝 2024.08.20

데이터분석 예측 모델링 실습

타이타닉 데이터로 실습해보고자 한다. info()로 확인한 타이타닉 데이터의 컬럼별 정보이다. 데이터 분석은 아래의 단계로 이루어짐. 1. 데이터 로드 및 분리 (test / train)2. 탐색적 데이터 분석(EDA)    데이터 분포 및 이상치 확인3. 데이터 전처리    이상치 처리    결측치 처리    수치형/범주형 전처리 (스케일링 / 인코딩)4. 모델 학습5. 모델 평가 1. 데이터 로드 및 분리라이브러리를 불러와준다.import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport seaborn as sns 타이타닉 데이터의 경우 이미 train / test 데이터로 분리되어 있기 때문에 파일 경로만 복사해서 넣어주면 되었..

TIL/머신러닝 2024.08.19

데이터 프로세스 : 데이터 전처리, EDA

1. 데이터 수집데이터 수집 단계는 예제 데이터 혹은 회사 데이터로 진행되기 때문에, 지나치는 경우가 많다.하지만 적재돼있는 데이터가 없는 회사거나 수집이 필요한 경우가 생길 수 있다.Data SourceOLTP Database: OnLine Transaction Processing 은 온라인 뱅킹,쇼핑, 주문 입력 등 동시에 발생하는 다수의 트랜잭션(데이터베이스 작업의 단위) 처리 유형Enterprise Applications: 회사 내 데이터 (ex 고객 관계 데이터, 제품 마케팅 세일즈)Third - Party: Google Analytics와 같은 외부소스에서 수집되는 데이터Web/Log: 사용자의 로그데이터Data Lake: 원시 형태의 다양한 유형의 데이터를 저장Data Warehouse: 보..

TIL/머신러닝 2024.08.16

프로그래머스| 2016년

문제설명2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까지 SUN,MON,TUE,WED,THU,FRI,SAT 입니다. 예를 들어 a=5, b=24라면 5월 24일은 화요일이므로 문자열 "TUE"를 반환하세요. 제한조건 2016년은 윤년입니다. 2016년 a월 b일은 실제로 있는 날입니다. (13월 26일이나 2월 45일같은 날짜는 주어지지 않습니다) 나의 풀이) 1. weekday에 요일 이름을 리스트 형태로 저장> 처음에 FRI ~ THU 순서로 저장했다가 오류 발생. 1월 1일의 경우 금요일임.  day % 7 = 1일 경우 금요..

TIL/Python 2024.08.16

프로그래머스| 상품을 구매한 회원 비율 구하기

문제설명다음은 어느 의류 쇼핑몰에 가입한 회원 정보를 담은 USER_INFO 테이블과 온라인 상품 판매 정보를 담은 ONLINE_SALE 테이블 입니다. USER_INFO 테이블은 아래와 같은 구조로 되어있으며 USER_ID, GENDER, AGE, JOINED는 각각 회원 ID, 성별, 나이, 가입일을 나타냅니다.ONLINE_SALE 테이블은 아래와 같은 구조로 되어있으며 ONLINE_SALE_ID, USER_ID, PRODUCT_ID, SALES_AMOUNT, SALES_DATE는 각각 온라인 상품 판매 ID, 회원 ID, 상품 ID, 판매량, 판매일을 나타냅니다. 문제USER_INFO 테이블과 ONLINE_SALE 테이블에서 2021년에 가입한 전체 회원들 중 상품을 구매한 회원수와 상품을 구매한 ..

TIL/SQL 2024.08.14

아티클 스터디| 사용자 데이터를 효과적으로 분석하는 법

출처 : https://yozm.wishket.com/magazine/detail/1967/ 사용자 데이터를 효과적으로 분석하는 법 | 요즘IT사용성 평가나 설문 조사 그리고 인터뷰와 같은 사용자 조사는 고객 관점에서의 사업 기회 발굴과 디자인 개선에 대한 인사이트를 제공해 줍니다. 그렇지만 단순히 사용자 조사로 수집된 데이yozm.wishket.com 사용자 조사 : 사용성 평가, 설문 조사, 인터뷰 등 사용자 조사는 고객관점에서 사업 기회 발굴과 디자인 개선에 대한 인사이트를 제공해준다.사용자 데이터에 감추어진 의미있는 정보를 파악하기 위해서는 수집된 데이터 특성에 맞는 적합한 분석을 진행하고, 시각화하는 과정이 필요함. 사용자 조사를 통해 수집되는 데이터1. 정량 데이터(Quantitative Da..

아티클 2024.08.13

머신러닝 - 다중 로지스틱회귀 실습

이 전 포스팅에서 실습했던 X변수 'Fare'에 Pclass와 Sex 컬럼을 추가하여 다중 로지스틱 회귀를 실습해보자. # 다중 로지스틱 회귀 실습 def get_sex(x):    if x == 'female':         return 0     else:        return 1 titanic_df['Sex_en'] = titanic_df['Sex'].apply(get_sex) X_2 에 Fare, Sex, Pclass를 넣어주자.X_2 = titanic_df[['Pclass','Sex_en','Fare']]y_true = titanic_df[['Survived']] from sklearn.linear_model import LinearRegression, LogisticRegression m..

TIL/머신러닝 2024.08.13

머신러닝 - 로지스틱회귀 실습

타이타닉 예측 대회 데이터를 통해 로지스틱회귀를 실습해보고자 함.선형 회귀 때와 같이 import 로 필요한 라이브러리를 가져왔다.import pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport numpy as npimport sklearn  데이터를 확인한 후 가설을 세워보았다."비상상황 특성상 여성을 배려하여 많이 생존하였을 것이다."가설의 검증에는 두 가지 방법이 있음.        1. pivot table을 만들어 확인        2. 그래프를 통해서 확인 1. pivot_table2. 그래프이렇게 성별은 생존과 관련이 있다는 사실을 알 수 있다. 그렇다면 X변수로 쓸 수 있는 컬럼에 어떤 것이 더 있을까 ?데이터를 분..

TIL/머신러닝 2024.08.13