데이터엔지니어

데이터 엔지니어링/데이터베이스 및 운영체제

SQL 서브쿼리(부속질의)

부속질의(SUBQUERY)란? 하나의 SQL 문 안에 다른 SQL 문이 중첩된 쿼리를 말함. 다른 테이블에서 가져온 데이터로 현재 테이블에 있는 정보를 찾거나 가공할 때 사용함. 보통 데이터가 대량일 때 데이터를 모두 합쳐서 연산하는 조인보다 필요한 데이터만 찾아서 공급해주는 부속질의가 성능이 더 좋음. 주질의(main query, 외부질의)와 부속질의(sub query, 내부질의)로 구성됨. 부속질의의 위치 SELECT 절 : SELECT 절에서 사용되며 단일 값을 반환하기 때문에 스칼라 부속질의라고함 스칼라나 벡터를 나오게 끔 해서 쓰면 됨(값 하나, 1차원 배열) FROM 절 : FROM 절에서 결과를 뷰(VIEW) 형태로 반환하기 때문에 인라인 뷰라고 함 2차원 값, 즉 요약된 테이블 형태로 나오..

데이터 엔지니어링/데이터베이스 및 운영체제

SQL_기초(JOIN)

카티전 프로덕트(CATESIAN PRODUCT) 두 릴레이션을 연결시켜 하나로 합칠 때 사용함. 결과 릴레이션은 첫번째 릴레이션의 오른쪽에 두번째 릴레이션의 모든 투플을 순서대로 배열하여 반환한다. 결과 릴레이션 차수는 두 릴레이션의 차수의 합이며, 두 릴레이션의 카디날리티 곱임 두 테이블을 단순히 합치는 것을 카티전 프로덕트라고 한다. 이것을 JOIN이라고 한다. 이 때 WHERE로 조건을 명시하는데, 이를 JOIN 조건이라고 한다. SELECT * FROM CUSTOMER, ORDERS WHERE CUSTOMER.CUSTID = ORDERS.CUSTID; ORDER BY CUSTOMER.CUSTID 조인 방법

데이터 엔지니어링/데이터베이스 및 운영체제

데이터베이스(ORACLE) 기초_2

데이터베이스 기본적으로 공유된 데이터베이스 시스템이다. 1대N의 관계를 가진, 웹 기반 서버-클라이언트 모델이다. 오라클 서버는 항상 서버에 접속 되어있어야하므로, 오라클 서버(DB)가 잘 작동하고 있는지 확인하는 방법 윈도우 기준 -> 시작메뉴 -> 서비스 접속 -> OracleServiceXE 상태 확인 DB 계정 생성 sys 계정으로 접근 및 생성 create user madang identified by madang; -- madang user 생성, 비밀번호 madang grant connect, resource to madang; -- 권한 주기 연결 접속,resource madang 계정 접속 madang 테이블 작성 DROP table orders; -- 만약에 테이블이 없을 경우, 에러발..

일기

데이터엔지니어링 트랙 9~11주차 후기

중간목표 점검 머신러닝, 딥러닝을 활용한 미니프로젝트 하다보니 욕심이 생겨 스케일이 꽤나?? 커진 프로젝트였습니다. 딥러닝 모델을 배우면서, 자연어에 관심이 생겼고 자연스럽게 자연어를 통한 감성분류 모델을 만들기로 했습니다. 여기에 챗봇이 붙었고, 추천 알고리즘(랜덤 + 코사인 유사도 활용)을 구현해보기도 했습니다. 이번 프로젝트도 열정적인 팀원분들이랑 함께해서 그런지 부족한 점이 많지만, 제 스스로는 만족했던 프로젝트였습니다! 크게 보면 챗봇, 감정 분류, 추천알고리즘 -> 웹 구현 이렇게 진행됐는데, 여기서 데이터베이스를 활용해보면서 웹 데이터를 어떻게 데이터베이스에 넣을지 고민하고, 저희가 수집한 데이터를 어떻게 새로운 추천알고리즘으로 구현할까? 까지 고민해보면서, 데이터에 대한 새로운 시각을 얻게..

프로젝트 회고록/사용자 대화 기반 감성 분석 및 노래 추천 프로젝트

사용자 대화 기반 감성 분석 및 노래 추천 프로젝트 회고

세번째 미니프로젝트를 마치고 나서 쓰는 회고록입니다. 1. 프로젝트 소개 챗봇을 통해 AI와 공감 형태의 대화를 진행하고, 그 속에서 추출된 감성분석을 통해 감성과 유사한/감성과 반대의 음악을 추천해주는 웹사이트를 제작하였습니다. 기획 의도 : 기존 음악어플의 플레이리스트/순위 및 장르 추천에서 벗어나 사용자의 개인 감정에 기반한 새로운 음악 추천 모델 구현 데이터셋 챗봇 웰니스 대화 스크립트 : https://aihub.or.kr/aihubdata/data/view.do?currMenu=120&topMenu=100&aihubDataSe=extrldata&dataSetSn=267 감성분석 감성말뭉치 : https://aihub.or.kr/aihubdata/data/view.do?currMenu=115&t..

머신러닝 및 딥러닝/딥러닝

딥러닝 실습(모델세부설정)

딥러닝 모델 세부 설정 모델 초기값 설정 : get_config() 레이어의 초기값을 개발자가 지정할 수 있다. (예제) mnist 데이터셋 활용 dense = tf.keras.layers.Dense(256, activation = 'relu') dense.get_config() 'kernel_initializer' : 레이어 초기화 방법 지정(기본값, glorot_uniform) 'kernel_regularizer' : 과대 적합 규제 적용(기본값, None) 모델 규제 과대적합을 피하기 위해 모델을 구성하는 레이어마다 l1, l2 규제 설정이 가능 kernel_regularizer 활용 # 규제 적용 dense = tf.keras.layers.Dense(25..

프로젝트 회고록/심장질환 AI 예측 머신러닝 프로젝트

심장질환 AI 예측 머신러닝 프로젝트 회고

두번째 미니 프로젝트를 마치고 나서 쓰는 회고록입니다. 3일 정도의 시간동안 무사히 기획한 방향대로 진행하고, 프로젝트 평가 1위를 할 수 있게 해준 병창님, 경목님 모두 고생하셨습니다! 1. 프로젝트 소개 심장질환 AI 예측 대중이 쉽게 접근 가능한 심장질환 판별 및 발생 확률 제공 웹사이트를 제작하겠다는 목적으로 프로젝트를 진행했습니다. 데이터셋은 캐글의 Personal Key Indicators of Heart Disease 데이터를 활용해서, 다양한 머신러닝을 경험해보면서 웹사이트에 모델을 적용하는 방식으로 적용했습니다. https://www.kaggle.com/datasets/kamilpytlak/personal-key-indicators-of-heart-disease 진행기간 2023년 2월 ..

머신러닝 및 딥러닝/머신러닝

경사하강법 이론2(+ Feature Scaling)

Feature Scaling 데이터 변환 중 가장 중요한 변환 중 하나/ 대부분의 머신러닝 알고리즘은 입력 숫자 특성들의 스케일이 많이 다르면 잘 작동하지 않음(Decision Tree 예외) 정규화(Normalization) 모든 값이 0 ~ 1 사이에 들도록 범위를 조정(feature_range로 조정 가능) sklearn.preprocessing.MinMaxScaler 표준화(Standardization) 평균을 뺀 후 표준편차로 나누어 평균 0, 분산 1이 되는 분포로 전환 각 특성값이 0에서 표준 편차의 몇 배만큼 떨어져 있는가 Min-max 스케일링과 달리 표준화는 범위의 상한과 하한이 없음 신경망의 경우 입력값의 범위를 0~1로 기대함 표준화는 이상치에 영향을 덜 받음(vs.min-max 스..

머신러닝 및 딥러닝/머신러닝

경사하강법 이론

경사하강법 여러 종류의 문제에서 최적의 해법을 찾을 수 있는 일반적인 최적화(Optimization) 알고리즘 손실(비용) 함수를 최소화 하기위해 반복해서 파라미터를 조정하는 것 선형 회귀의 경우 손실함수(MSE(평균오차제곱))을 최소화하는 파라미터 W1, W0에 대해 함수의 현재 기울기(그래디언트)를 계산한 후 기울기가 감소하는 방향으로 진행하고, 기울기가 0이 되면 최솟값에 도달한 것 비유 : 앞이 보이지 않는 안개가 낀 산을 내려올 때는 모든 방향으로 산을 더듬어 가면서 산의 높이가 가장 낮아지는 방향으로 한발 씩 내딛어 내려올 수 있다. 경사하강법의 장점 함수가 너무 복잡해 미분 계수를 구하기 어려운 경우 경사하강법을 구현하는게 미분 계수를 구하는 것보다 더 쉬운 경우 데이터 양이 너무 많아 효율..

데이터 분석 및 시각화/데이터 시각화

[Python] folium

folium folum은 파이썬 라이브러리로 지도 데이터를 시각화하는데 아주 쉽게 도와줍니다 leaflet.js를 기반으로 만들어졌습니다. 지도에 마커를 표현하거나 범위를 나타내는 다양한 도형을 입력할 수 있습니다. conda에 folium 설치하기 아나콘다 프롬프트를 켜고 다음의 명령을 입력합니다. conda install -c conda-forge foloium folium 간단한 예제 우리가 현재 위치한 곳의 위도와 경도 정보입니다. 위도와 경도 각각을 latitude, longitude에 저장해봅시다. # 플레이데이터 독산 위도, 경도 latitude, longitude = (37.468251, 126.886212)해당 위도, 경도 정보를 바탕으로 지도에 표시해봅시다. 또 Marker를 달아 위치..

데이터 분석 및 시각화/파이썬

[Python]Pandas 특정 문자열 포함 행 찾고 대체하기(str.contains, where)

np.nan 값이 섞인 Series 자료형에 대해 특정 문자 값이 포함되었는지 사용할 수 있는 메서드로 contains()가 있습니다. 첫 인자로 포함된 것을 찾을 문자열을 넣어줍니다. na 키워드 인수를 활용하면 NaN 값을 대신할 값을 넣을 수 있습니다. _공식문서_str.contains _공식문서 where 예제 survey_df.where(~survey_df['Gender'].str.contains(';', na = False), np.nan, inplace = True) 코드 설명 survey_df의 Gender 컬럼 중 ;를 포함하는 행 찾기(na의 경우에는 False 처리) 앞 선 메소드의 True로 반환된 값들을 False로 전환(비트 연산자 ~) where로 ..

데이터 분석 및 시각화/파이썬

[Python] Pandas 시리즈 문자열 변경 메소드(replace)

YearsCode 컬럼의 'Less than 1 year'의 값은 0으로 변경하고, 'More than 50 years'의 값은 51로 일괄적으로 변경합니다. replace 메소드 survey_df['YearsCode'].replace('Less than 1 year', 0, inplace = True) survey_df['YearsCode'].replace('More than 50 years', 51, inplace = True)공식문서 링크 https://pandas.pydata.org/docs/reference/api/pandas.Series.replace.html?highlight=replace#pandas.Se..

우상욱
'데이터엔지니어' 태그의 글 목록 (12 Page)