sksdudtjs의 등록된 링크

 sksdudtjs로 등록된 티스토리 포스트 수는 23건입니다.

07-04 자연어 처리를 위한 1D CNN 연습문제 풀이 (Pytorch Conv1D 예제) [내부링크]

https://wikidocs.net/184983 07-04 자연어 처리를 위한 1D CNN(1D Convolutional Neural Networks) 합성곱 신경망을 자연어 처리에서 사용하기 위한 1D CNN을 이해해보겠습니다. ## 1. 2D 합성곱(2D Convolutions) 앞서 합성곱 신경망을 설명하며 합성곱 연산… wikidocs.net PyTorch로 시작하는 딥 러닝 입문이라는 위키독스에 있는 자연어 처리를 위한 1D CNN 연습문제를 풀어보겠습니다. (Pytorch conv1D 예제) 먼저 필요한 라이브러리를 임포트합니다. import torch import torch.nn.init device = 'cuda' if torch.cuda.is_available() else 'cpu' 신..

split과 join을 이용해 문자열 자른 뒤 합치기(apply, lambda, axis) [내부링크]

목적: python을 이용해 특정 구분자로 구분 되어 있는 문자열에서 제일 마지막 값만 없애기 import pandas as pd df = pd.DataFrame({'cat':['건>강', '디>지>털', '화>장>품']}) # df['cat'] = df['cat'].apply(lambda x: ">".join(x.split(">")[:-1])) Before After Data Frame에 적용하기 전에 하나의 문자열 ('화>장>품')에 대한 코드 작성. Step 1 먼저 split을 이용해 구분자인 '>'를 기준으로 문자열을 쪼개 리스트를 만듦 '화>장>품'.split(">") Step 2 마지막 원소는 제외하고 선택 '화>장>품'.split(">")[:-1] Step 3 join을 이용해 리스트를 문..

matplot 기초 [내부링크]

가장 먼저 시각화에 필요한 라이브러리를 불러옴. # matplot import matplotlib as mpl import matplotlib.pyplot as plt # seaborn import seaborn as sns # numpy와 pandas import numpy as np import pandas as pd matplot 버전확인 방법 print(mpl.__version__) 가장 기본적인 사용법 (plt.plot()) # sample data data_dict = {'x':[1, 2, 3, 4, 5], 'y':[6, 7, 8, 9, 10], 'y2':[1, 3, 5, 7, 9]} plt.plot(data_dict['y']) # y값 plt.plot(data_dict['x'], data_d..

feature selection [내부링크]

Information Value 설명: Variance Threshold 설명: 저 분산(low-variance) 피쳐 제거. training set의 분산 확인. 분산이 0이면 모든 샘플에서 동일한 값을 갖고 있다는 뜻. Threshold를 .8 * (1 - .8))이라고 하면 80% 넘게 동일한 값을 가지고 있는 컬럼이 제거 됨. chi2 설명: f_regression 설명: F-statistic 과 p-value를 반환하는 일변량 선형회귀 테스트. 여러 회귀 변수에 대해 순차적으로 단일 회귀 변수의 효과를 테스트하는 빠른 선형 모델. Step1: 회귀 변수와 타겟 변수의 cross 상관관계는 r-regression을 이용해 계산 됨. r-regression: 각 피쳐와 타겟에 대한 피어슨 r(피어슨..

영업일 [내부링크]

영업일 (Business day, working day) 시작 날짜부터 끝 날짜까지 총 몇 일의 working day가 있는지 카운트 pd.bdate_range import datetime import pandas as pd holidays_list = ['2022-05-05', '2022-05-08', '2022-06-01', '2022-06-06'] start_date = datetime.datetime.strptime('2022-05-01', "%Y-%m-%d").date() end_date = datetime.datetime.strptime('2022-05-30', "%Y-%m-%d").date() print (len(pd.bdate_range(start=start_date, end=end_dat..

pd.to_datetime, strptime, strftime, [내부링크]

Python에서 날짜, 시간 데이터 다루기 설명을 위한 Data Frame 생성 import pandas as pd time_df = pd.DataFrame({ '주문번호': ['1', '2', '3', '4', '5'], '주문일자': ['2022-07-11', '2022-07-11', '2022-07-11', '2022-07-11', '2022-07-11'], '주문시간': ['9:00', '9:30', '10:00', '10:30', '11:00'], '입금확인일시': ['2022-07-11 09:10', '2022-07-11 09:40', '2022-07-11 10:10', '2022-07-11 10:40', '2022-07-11 11:10'], '출고완료일시': ['2022-07-12 09:00..

SQL [내부링크]

DCL: GRANT, REVOKE DDL: CREATE, ALTER, DROP DML: INSERT, UPDATE, DELETE, SELECT SELECT * FROM _TABLE_ WHERE _COLUMN_='VALUE' INSERT INTO _TABLE_ (_COLUMN_) VALUES ('VALUE') UPDATE _TABLE_ SET (_COLUMN_='VALUE') WHERE CONDITION DELETE FROM _TABLE_ WHERE CONDITION SELECT TOP 100 * FROM _TABLE_ SELECT * FROM _TABLE_ WHERE _COLUMN_ IN ('VALUE', 'VALUE') 2개의 TABLE JOIN SELECT A.COL, B.COL FROM A INNE..

Model [내부링크]

feature selcetion Variance Threshold: 입력 feature 가 상수임을 판단하는 기법이다. 출력의 변화와 비교하여 거의 변화하지 않는 입력 변수는 출력을 예측하는 입력 변수 군에서 제외. F-regression: 입력 변수와 출력 변수간의 correlation 기반의 regression 을 수행한 후, F-test 를 통해 입력 변수의 중요도를 판단하는 기법이다. 정규화를 위해 p-value 로 변환하고, 이를 통해 각 입력 변수들과 출력 변수의 상관도를 분석한다. (F-test: 두 표본의 분산에 대한 차이가 통계적으로 유의한가를 판별. ) Mutual Information regression: 상호 정보. Random Forest: 중요한 변수. Correlation pr..

Model selection [내부링크]

Score, Cross-validated Scores Score: 새로운 데이터에 대한 적합(예측) 품질은 판단할 수 있는 점수 방법. Cross-validation generators Cross-validation: 교차 검증. 데이터를 훈련 세트와 테스트 세트로 반복적으로 분할하고 훈련 세트를 통해 훈련하고 테스트 세트를 기반으로 점수 계산. (학습/테스트 색인 목록 생성 기능 제공함.) Grid-search and cross-validated estimators 매개변수 그리드에서 추정기를 학습 시키는 동안 점수를 계산하고 교차 검증 점수를 최대화하기 위해 매개변수를 선택하는 객체 제공함. 기본적으로 5중 교차 검증. 최적의 하이퍼파라미터를 찾는 방법. 두 개의 교차 검증 루프가 병렬로 수행 됨. ..

sklearn - K-NN, Linear, SVM [내부링크]

K-NN X_train에서 새로운 관찰이 주어지면 training set에서 가장 가까운 feature 벡터가 있는 관찰을 찾는다. 차원의 저주: 추정기가 효과적이려면 인접 점 사이의 거리가 특정 값 d 보다 작아야한다. Linear regression 선형 회귀: 모델의 잔차 제곱의 합을 가능한 작게 만들기 위해 매개변수를 조정하여 선형 모델을 데이터 셋에 맞춘다. coefficient: 계수. regr.coef_: 각 변수의 계수를 알 수 있음. regr.score(X, y): Explained variance(설명된 분산). 0이면 X, y사이에 선형 관계가 없다. 차원 당 데이터 포인트가 적은 경우 관측치의 노이즈로 인해 높은 분산이 발생함. 릿지 회귀: 고차원 통계 학습의 솔루션은 회귀 계수를 ..

group by 후 custom된 집계함수 사용 [내부링크]

import numpy as np import pandas as pd from sklearn.metrics import r2_score, mean_squared_error def r2_rmse( g ): r2 = r2_score( g['Actual'], g['Predicted'] ) rmse = np.sqrt( mean_squared_error( g['Actual'], g['Predicted'] ) ) return pd.Series( dict( r2 = r2, rmse = rmse ) ) your_df.groupby( 'Type' ).apply( r2_rmse ).reset_index() data frame에서 group by 후 custom된 집계함수 사용

지리 데이터 시각화 (7) folium을 이용한 지도 위 우편번호 표시 [내부링크]

목적 지도 위에 우편 번호를 표시합니다. 1. folium을 이용한 지도 위 우편번호 표시 데이터 준비 권역코드-우편번호 csv파일(code-bas_id_euc-kr.csv) 지리 데이터 시각화(4) - folium으로 명목형 choropleth 지도 그리기, tool tip 사용 서울시 기초 구역도 geo json파일(TL_KODIS_BAS_W.json) 지리 데이터 시각화(2) - 좌표계 변경 (UTM-K -> WGS84), GeoJSON colab에서 작업을 하였습니다. 위에서 만든 두 파일을 불러옵니다. 필요한 라이브러리를 import 합니다. import folium from folium import plugins import pandas as pd import matplotlib.colors ..

차집합, 교집합, drop_duplicates, duplicated [내부링크]

value_count(값의 개수) / 차집합 'col2'라는 공통 컬럼을 가진 두 데이터 프레임을 비교하여 df2에는 있는데 df1에는 없는 'col2'값을 찾겠습니다. d1 = {'col1': ['a', 'b', 'c'], 'col2': [1, 2, 3]} df1 = pd.DataFrame(data=d1) drop_duplicates() d2 = {'col2':[2, 3, 3, 4]} df2 = pd.DataFrame(data=d2) # df2 내에서 중복된 값을 없애준다. df2 = df2.drop_duplicates().reset_index(drop=True) 위와 같이 두 Data Frame이 있을 때 df2에는 있고 df1에는 없는 '4'라는 값을 찾겠습니다. 먼저 df1에 df2를 concat..

drop id max, datetime, 요일, one-hot encoding, lag, mms [내부링크]

drop id max # index 가 제일 큰 행 drop df = df.drop(df['col1'].idxmax()) String to datetime d = {'col1': [1, 2, 3], 'col2': [4, 5, 6], 'dt':['2022.03.05', '2022.07.11', '2022.12.31']} df = pd.DataFrame(data=d) # (1) pd.to_datetime # errors='coerce': 변경할 수 없으면 NaT 반환 df['dt'] = pd.to_datetime(df['dt'], errors='coerce') # (2) str datetime a = pd.to_datetime(df['dt'], format='%Y.%m.%d') # str -> datetim..

group/sort by, index, series, array, rename, concat, merge, type [내부링크]

group by 'col1'을 기준으로 그룹 만들고 'col2'의 평균 값 사용 (mean, sum, count 사용 가능) d = {'col1': [1, 2, 3], 'col2': [4, 5, 6]} df = pd.DataFrame(data=d) df.groupby('col1')[['col2']].mean() df.groupby('col1', as_index=False)[['col2']].mean() # index reset reset index 할 때 already exists 오류날 경우 df.groupby(['col1', 'col2'])[['col2']].count().reset_index(drop=True) index to columns and reset index df.reset_index(l..

지리 데이터 시각화 (6) folium을 이용한 경유지&경유 순서 시각화, marker의 icon 안에 숫자 [내부링크]

목적 특정 장소들을 각각 경유하는 여러대의 차량이 있을 때, 경유지와 이동 순서를 지도 위에 표현하고자합니다. 이 때 경유 장소에 대한 위도(latitude), 경도(longitude) 정보는 주어집니다. 또한 경유 장소에 대한 zone 정보를 tool tip 형식으로 표현하겠습니다. 1. folium을 이용한 경유지, 경유 순서 시각화 데이터 준비 필요한 라이브러리를 import 합니다. import folium from folium import plugins import pandas as pd import matplotlib.colors as mcolors 차량 별 경유 정보 데이터를 가져옵니다. df = pd.read_csv('sample_data/tsp_result_nodes.csv') 차량은 2..

지리 데이터 시각화(5)- folium의 Choropleth지도 오류 (shape file) [내부링크]

folium을 처음 접하며 해결하지 못했던 오류들 기록. geo json 대신 shape file을 이용할 경우 지리 데이터 시각화(1)에서 다운 받은 202105기초구역DB_전체분 > 서울특별시 > 11000 > .dbf, .shp, .shx파일 세개와 202105기초구역DB_전체분 > GRS80_UTMK.prj 파일의 이름을 위 세파일과 똑같이 바꾼 파일(TL_KODIS_BAS.prj)을 올림. import geopandas as gpd 우편번호 - 권역 코드 매핑 데이터 가져옴. df = pd.read_csv('sample_data/code-bas_id_euc-kr.csv', encoding = 'euc-kr') df['우편번호*'] = df['우편번호*'].astype('str').str.zfil..

지리 데이터 시각화(4) - folium으로 명목형 choropleth 지도 그리기, tool tip 사용 [내부링크]

목적 우편번호 별로 권역 코드가 매핑되어 있는 데이터를 지도 위에 표현하고자합니다. 권역코드 별로 색상을 다르게하여 권역을 구분하고 우편번호를 지도 위에서 확인하겠습니다. 1. folium을 이용한 시각화 데이터 준비 folium의 경우 utf-8로 인코딩된 csv파일을 이용할 경우 오류가 납니다. euc-kr로 인코딩을 변경해주세요. 저는 mac 환경을 사용하고 있고 아래 명령어로 인코딩을 바꾸었습니다. iconv -c -f utf-8 -t euc-kr code-bas_id.csv > code-bas_id_euc-kr.csv file -I code-bas_id.csv, file -I code-bas_id_euc-kr.csv 명령어로 인코딩이 잘 된 것을 확인하였습니다. colab에서 작업을 하였습니다...

지리 데이터 시각화(3) - plotly로 choropleth 지도 그리기 (Geo JSON, Geo Data Frame) [내부링크]

먼저 말씀드리면 저는 plotly로 만든 html 파일이 너무 늦게 열리거나 안 열리는 문제로 folium을 사용하고 있습니다. 목적 우편번호 별로 권역 코드가 매핑되어 있는 데이터를 지도 위에 표현하고자합니다. 권역코드 별로 색상을 다르게하여 권역을 구분하고 우편번호를 지도 위에서 확인하겠습니다. Choropleth map (등치 지도) 등치 지도는 미리 정의된 영역이 집계 요약을 나타내는 통계 변수(인구 밀도 또는 1인당 소득 등)에 비례해 색이 지정되거나 패턴화된 주제 지도 유형입니다. 변수가 지리적 영역에 따라 어떻게 변하는지 시각화하거나 지역 내 변동성 수준을 표시하는 쉬운 방법을 제공합니다. Plotly를 이용한 시각화 데이터 준비 colab에서 작업을 하였습니다. TL_KODIS_BAS_W...

지리 데이터 시각화(2) - 좌표계 변경 (UTM-K -> WGS84), GeoJSON [내부링크]

Folium을 이용한 데이타 시각화 먼저 위 사이트에서 많은 도움을 받았음을 밝힙니다. 거의 위 사이트에 있는 내용 실습이라고 봐주시면 됩니다. 목적 1. 지리 데이터 시각화(1)에서 다운 받은 한국 기초 구역도의 좌표계를 UTM-K에서 WGS84형태로 변경합니다. 2. SHP 파일을 GeoJSON 형태로 저장합니다. 1. UTM-K to WGS84 한국 기초 구역도는 SHP 지도 좌표계가 UTM-K로 되어 있어 Folium에서 사용하기 어렵습니다. 따라서 위경도 형태의 WGS84 형태로 변경을 해 주어야합니다. 좌표계 변환 툴은 XrProjection v3.1 를 사용했습니다. 아래 페이지에서 다운을 받아주세요. http://www.gisdeveloper.co.kr/?p=2101 [GIS] XrProj..

지리 데이터 시각화(1) - 한국 기초 구역도 합치기, GeoPandas [내부링크]

데이터 사이언스 스쿨 - 지리 정보 데이터 처리 먼저 위 사이트에서 많은 도움을 받았음을 밝힙니다. 지리 데이터를 처음 접하시는 분은 한 번 정독하시는 걸 추천드립니다. 목적 우편번호 별로 권역코드가 매핑되어 있는 데이터를 지도 위에 표현하고자 합니다. 권역코드 별로 색상을 다르게하여 권역을 구분하겠습니다. 1. 한국 기초 구역도 다운로드 가장 먼저 한국 기초 구역도를 다운 받습니다. https://www.juso.go.kr/addrlink/addressBuildDevNew.do?menu=bsin 저는 2021년 5월 데이터를 받았습니다. "5월"을 누르면 다운 받을 수 있습니다. 다운 받은 202105기초구역DB_전체분.zip 파일의 압축을 풉니다. 서울특별시 > 11000 폴더엔 위..

CSV 읽기/쓰기, 행/열 선택/삭제, axis [내부링크]

CSV 읽고 쓰기 읽기 df = pd.read_csv("./dataset.csv") 쓰기 df.to_csv("./dataset.csv", sep=',', float_format='%.f2', index=False) 경고 끄기 pd.set_option('mode.chained_assignment', None) Data Frame 생성 d = {'col1': [1, 2, 3], 'col2': [4, 5, 6]} df = pd.DataFrame(data=d) Data Frame index reset df.reset_index(inplace=True, drop=True) 행 선택/삭제 iloc(integer-location based)로 행 선택 df.iloc[0] # 0 번째 행 선택 (행만 series로) ..

Pycharm Pro에서 도커 서버를 interpreter로 사용하는 법 [내부링크]

노트북 환경: MacBook Pro / Interl 칩 맥에 도커 설치 home brew 설치가 안 되어 있다면 설치 링크: https://brew.sh/index_ko 맥 터미널에서 brew install docker 입력 도커 관리 프로그램 설치 (선택) 링크: https://docs.docker.com/docker-for-mac/install/ 도커 이미지 생성하기 도커 이미지 생성 작업을 할 폴더 생성. mkdir do_test 나는 do_test라는 폴더를 만들었음. do_test 폴더로 이동 cd do_test requirements.txt 파일 생성 vi requirements.txt 위 명령어 입력 후 엔터 scikit-learn pyyaml pandas numpy xgboost matpl..