분류 전체보기

    K-NN

    K-NN은 K-Nearest Neighbor이다. K값 = hyper paramters로 홀수갯수가 필요하다. 결론 - 자료끼리의 거리를 기준으로 분류한다.(클러스터링)

    데이터 베이스의 본질

    CRUD Create Read Update Delete 입력(생성, 수정, 삭제), 출력이 데이터 베이스의 본질이다. 파일시스템은 원하는 정보의 검색하는데 불편하다. 스프레드시트같이 구조적으로 데이터를 관리하면 편한데 데이터베이스프로그램은 컴퓨터 언어를 이용해서 데이터를 관리할 수 있다. 데이터베이스프로그램은 자동화 할 수 있다. 데이테베이스 시장의 절대 강자는 관계형 데이터베이스이지만 SNS, 사물인터넷 등 수많은 데이터가 쏟아져 나오는 현재, 모든 데이터가 관계형 데이터베이스에 적합하지는 않다. NoSQL - 관계형데이터베이스가 아닌 다양한 데이터베이스가 만들어 지고 있다. 생활코딩 www.youtube.com/watch?v=2S6H6URQiY8&list=PLuHgQVnccGMBe0848t2_ZUgF..

    Linux 명령어 정리

    우분투 명령어를 찾다가 너무 정리를 잘해주신 분이 계셔서 스크랩해왔다. 이걸 활용해서 공부해보겠다. velog.io/@devyang97/Linux-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%A0%95%EB%A6%AC-Ubuntu-%EC%82%AC%EC%9A%A9 [Linux] 명령어 정리 (Ubuntu 사용) 디렉토리 목록 확인 ` $ ls ` ` $ ls -al ` ` $ ls -l ` 감춰진 파일은 .이 붙는다. a 옵션을 사용하면 해당 파일을 확인할 수 있다. 현재 위치 확인 ` $ pwd ` 새 디렉토리 생성 ` $ mkdir [디렉토리명] ` ` $ mkdir velog.io 디렉토리 관련 명령어 디렉토리 목록 확인 $ ls $ ls -al : 감춰진 파일은 .이 붙는다. a 옵션..

    Logistic Regression의 개념과 구매 여부 분류 하기

    Logistic Regression이란? 빨간점은 데이터이고, 액션의 0과 1은 y값, 레이블이다. y값이 있다는것은 곧 supervised leaning이란 뜻이다. 위의 그래프와 비슷하게 생긴 Sigmoid함수가 존재한다. linear Regression 의 식을 Sigmoid에 대입하여 일차방정식으로 만들면 다음과 같아진다. 위와 같은 식을 가진 regression을 Logistic Regression이라 한다. Logistic Regression을 통해 구매할지 안 할지, 클릭을 할 지 안 할지 여러가지 조건들을 확률로 나타낼 수 있다. 위의 시그모이드 함수를 적용한 그래프를 보면 20대는 클릭할 확률이 0.7%, 40대는 85%, 50대는 99.4%이다. 최종 예측 값은, 0.5를 기준으로 두 ..

    Multiple_Linear_Regression으로 회사의 이익 예측하기

    캘리포니아에 있는 회사 중 연구개발비는 210,000달러, 운영비는 170,000달러, 마케팅비는 500,000달러를 쓰는 회사가 있다. 이 회사는 얼마의 수익을 낼 것인지 예측해보자. R&D Spend / Administration / Marketing Spend / State Profit의 다수의 컬럼들을 가진 데이터를 Multiple_Linear_Regression을 이용해 수익을 예측하는 머신러닝 모델으로 만들겠습니다. import numpy as np import matplotlib.pyplot as plt import pandas as pd from sklearn.compose import ColumnTransformer from sklearn.preprocessing import OneHot..

    Linear_Regression

    Linear_Regression은 분포된 값들 사이에서 y = ax + b인 1차 방정식을 구하여 입력 값에 따른 예측값을 산출 것이 목적이다. 여기서 x는 연차, y는 연봉으로 값이 주어지고,Linear_Regression 을 통해 찾아야 하는 것이 계수 a와 상수 b이다. sum(실제y값 - 예측값)^2 이 최소가 되게 만드는 것을 학습이라고 한다 Linear_Regression을 통해 연차에 따른 연봉을 예측하도록 해보겠다. import numpy as np import matplotlib.pyplot as plt import pandas as pd df = pd.read_csv('Salary_Data.csv') df.head() #데이터 프레임의 앞부분을 확인한다. df.isna().sum() #..

    stramlit으로 크롤링을 통한 기사제목 워드클라우드 시각화하기

    스트림릿을 통한 기사제목 워드클라우드 시각화를 구현했다. 앞글의 내용과 거의 비슷하지만 VSCode를 통해 streamlit으로 시각화 했다는점에서 차이가 있다. import requests from bs4 import BeautifulSoup import matplotlib.pyplot as plt from konlpy.tag import Kkma from konlpy.tag import Okt from wordcloud import WordCloud import nltk import streamlit as st def main(): st.header('최대 7일 이내의 뉴스 키워드를 찾을 수 있습니다') date = st.text_input('키워드를 보고싶은 일자를 입력해주세요. ex)2021032..

    기사 제목 크롤링을 통한 워드클라우드 시각화하기 [완료]

    기쁨의 워드클라우드 탈출기. 무언가 해놓은게 없다는 판단에 배운거라도 써먹을 수 있도록 기사제목 크롤링 후 워드클라우드로 일자 별 키워드를 한눈에 볼 수 있는 코드를 짜봤다. 3월 21일에 시작을 하고 끝까지 다 왔지만 워드클라우드의 한글 폰트 적용문제로 3일간 디버깅을 시도하였고, 코랩, VS Code, Jupyter notebook등에서 시도해도 되지 않던 한글폰트 적용을 24일 밤에 성공했다 ㅋㅋㅋㅋ 남들에겐 아무것도 아닌 쉬운 작업일지 몰라도 뉴비인 나에겐 엄청 큰 발전이다. 아래는 코드. pip install konlpy #한글의 형태소 분석등을 위한 꼬꼬마를 사용하기위해 설치 import requests import pandas as pd from bs4 import BeautifulSoup ..

    MySQL과 파이썬 연동하기

    파이썬과 MySQL을 연동하는 방법. 1. MySQL에 접속을 위한 유저를 하나 만든다. 여기서 admin계정은 사용하지 않고 특정 DB에서만 접속할 수 있는 계정을 만듦. #my_test 데이터베이스에만 접속이 가능한 유저 생성 create user 'node_user' @ '%' identified by 'node1234test'; # my_test DB를 관리할 권한 설정 grant all on my_test.*to'node_user' @ '%' 2. 이용순서 1) install MySQL connector module pip install mysql-connector-python 2) import mysql.connector (VScode 사용) 3) use the connect() method ..

    MySQL - join (+ case 조건문)

    join = 테이블을 설계할 때 데이터의 무결성을 유지하고, 중복되는 데이터 처리를 위해 사용된다. -- students 테이블 생성 create table students( id int auto_increment primary key, first_name varchar(100) ); --papers 테이블 생성 create table papers( title varchar(100), grade int, student_id int, foreign key(student_id) references students(id) on delete cascade ); foreign key / references student_id는 papers테이블 내에 있던 자료가 아니라 students테이블에 있는 id 컬럼을 불..

    MySQL 기본문법

    - 테이블 생성하기. use yhdb; --야후db에서 작업하겠다. create table tweets(username varchar(15), -- username컬럼을 생성할 것이고, varchar로 15글자까지만 받을것이다. content varchar(140), --content 컬럼도 마찬가지로 varchar로 140글자까지만 받을것이다. favorites int -- favorites컬럼은 int형의 숫자만 받을것이다. ); 여기서 varchar는 문자와 숫자를 보관할 수 있는 데이터베이스 관리 시스템의 필드의 자료형의 하나로 입력된 자료의 크기만큼만 메모리를 할당하기 때문에 메모리의 낭비를 줄일 수 있음. select * from tweets; --tweet 테이블 불러오기 not null -..

    Workbench 를 통해, AWS RDS에 접속환경 설정하는 방법

    Workbench 를 통해, AWS RDS에 접속환경 설정하는 방법입니다. MySQL Workbench를 사용하여 MySQL을 실행하는 Amazon Relational Database Service(Amazon RDS) DB 인스턴스에 연결하려면 어떻게 해야 합니까? 해결 방법 아래 단계에 따라 MySQL Workbench를 Amazon RDS DB 인스턴스에 연결합니다. MySQL Workbench를 다운로드하고 설치합니다. MySQL Workbench를 열고 MySQL Connections 옆의 ⊕ 기호를 선택하여 새 연결을 설정합니다. [새 연결 설정(Setup New Connection)] 대화 상자에서 연결에 적합한 이름을 입력합니다. [파라미터(Parameters] 섹션에서 다음 세부 정보를 ..

    XG Boosting

    Boosting? 여러 개의 약한 Decision Tree를 조합해서 사용하는 Ensemble 기법 중 하나이다. 즉. 약한 예측 모형들의 학습 에러에 가중치를 두고. 순차적으로 다음 학습 모델에 반영하여 강한 예측모형을 만드는 것이다. XGBoost란 XGBoost는 Extreme Gradient Boosting의 약자. Boosting 기법을 이용하여 구현한 알고리즘은 Gradient Boost 가 대표적인데 이 알고리즘을 병렬 학습이 지원되도록 구현한 라이브러리가 XGBoost 이다. Regression. Classification 문제를 모두 지원하며. 성능과 자원 효율이 좋아서. 인기 있게 사용되는 알고리즘이다. XG Boost의 장점. GBM대비빠른수행시간 병렬 처리로 학습. 분류 속도가 빠르..

    imputer

    imputer Nan데이터는 처리하기 쉽도록 판다스에서 Nan데이터 처리전용 함수를 제공함. 문제는 Nan이 아닌 0이나 필요없는 object등 다른 문자들로 데이터가 없음을 표시한 경우 처리가 쉽지않다. 이럴 때 imputer 사용. from sklearn.impute import SimpleImputer fill=SimpleImputer(missing_values= 0 , strategy='mean') fill.fit_transform(df) array([[ 6. , 148. , 72. , ..., 0.627, 50. , 1. ], [ 1. , 85. , 66. , ..., 0.351, 31. , 1. ], [ 8. , 183. , 64. , ..., 0.672, 32. , 1. ], ..., [ 5..

    Transfer Learning / Fine Tuning

    Transfer Learning Transfer Learning(전이학습)은 높은 정확도를 비교적 짧은 시간 내에 달성할 수 있기 때문에 컴퓨터 비전 분야에서 유명한 방법론 중 하나다. 전이학습을 이용하면, 이미 학습한 문제와 다른 문제를 풀 때에도, 밑바닥에서부터 모델을 쌓아올리는 대신에 이미 학습되어있는 패턴들을 활용해서 적용시킬 수 있다. 컴퓨터 비전에서 말하는 전이학습은 주로 사전학습 된 모델 (pre-trained model) 을 이용하는 것을 뜻한다. 사전학습 된 모델이란, 내가 풀고자 하는 문제와 비슷하면서 사이즈가 큰 데이터로 이미 학습이 되어 있는 모델이다. 그런 큰 데이터로 모델을 학습시키는 것은 오랜 시간과 연산량이 필요하므로, 관례적으로는 이미 공개되어있는 모델들을 import해서 ..

    Model Checkpoint와 CSVLogger

    Model Checkpoint와 CSVLogger는 모두 콜백함수중 하나이다. Model Checkpoint - 모델을 저장할때 사용되는 콜백함수. from tensorflow.keras.callbacks import ModelCheckpoint cp = ModelCheckpoint(filepath=CHECKPOINT_PATH, monitor='val_accuracy', save_best_only = True, verbose = 1) 인자 설명 filepath - 모델을 저장할 경로를 입력함. 추가 설명으로 만약 monitor가 val_loss일 때, 모델 경로를 '{epoch:02d}-{val_loss:.5f}.h5' 라고 입력하면, 에폭-해당에폭에서의 val_loss.h5로 모델이 저장됨. 예: 01..

    [Python]Visual Studio Code 개발환경 설정하기

    # 내가 보고 공부하기위한. 1. Open Folder 먼저 왼쪽 메뉴 중 가장 위에 있는 문서모양 버튼을 클릭하여 줍니다. 그럼 Open Folder 라고 파란 버튼이 나오게 됩니다. 버튼을 클릭해서 미리 가상환경까지 만들어 두었던 PythonHome을 선택해 줍니다. PythonHome 폴더를 만들고 싶으신 분들은 터미널에서 아래의 코드를 타이핑하여 만드시면 됩니다. $ mkdir ~/PythonHome 가상환경 설정방법이 궁금하신 분들은 아래의 링크를 참고해주세요 https://somjang.tistory.com/entry/Pythonvirtualenv-virtualenvwrapper-설치-및-사용법Ubuntu?category=345065 [Python]virtualenv / virtualenvwr..

    판다스 Date Time Index #일자 / 시간 데이터 처리법

    Pandas에서는 일자와 시간을 처리하기 위한 일자시간타입(datetime64) 데이터를 제공하고있고, 이를 통해 여러 데이터를 한꺼번에 다룰 수 있다. Date Time Index 사용법. import pandas as pd df = pd.DataFrame({'날짜': ['2021-01-10 07:10:00', '2021-02-15 08:20:30', '2021-03-20 09:30:00', '2021-04-25 10:40:30', '2021-05-27 11:50:00', '2021-06-21 12:00:30', '2021-07-01 13:10:00', '2021-08-16 14:50:30']}) # pandas를 import한 뒤 데이터프레임을 만들어준다. 위의 데이터 프레임의 '날짜' 컬럼을 보면 ..

    타임시리즈 데이터 분석을 위한 Prophet

    prophet은 페이스북에서 만든 높은 시계열 예측 라이브러리이다. prophet은 정확도가 높고 빠르며 직관적인 파라미터로 모델의 수정이 용이하다는 장점을 갖고있다. prophet을 사용하기 위해서는 데이터의 ds(datestamp)와, 수치로 작성된 데이터자료(y)가 필요하다. 어떤 상품의 일정 기간 동안의 가격을 알고 있다면 미래의 가격 또한 예측 할 수 있는 것이다. Prophet 사용법 데이터프레임의 date 컬럼을 'ds'로, 수치의 값을 y로 설정한 뒤 가격을 예측한다. m = Prophet() #프로펫 변수설정 m.fit(avocado_prophet_df) #프로펫을 학습시킨다. future=m.make_future_dataframe(periods=365) # 365일치를 예측할 것. fo..

    이미지 데이터 제너레이터가 하는 역할과 코드

    CNN은 영상의 2차원 변환인 회전(Rotation), 크기(Scale), 밀림(Shearing), 반사(Reflection), 이동(Translation)과 같은 2차원 변환인 Affine Transform에 취약하여 변환된 사진 또는 영상을 다른 자료로 인식한다. ImageDataGenerator는 Noise삽입, 색상, 밝기 변형 등을 활용하여 실시간으로 데이터 증강을 사용하고, 텐서 이미지 데이터 배치를 생성하여 데이터 학습의 정확도를 높이는 역할을 한다. #ImageDataGenerator의 호출 from keras.preprocessing.image import ImageDataGenerator #이미지 증강을 위한 옵션 사용 TRAINING_DIR = '/tmp/cats-v-dogs/trai..

    callback 함수

    callback 함수란? 함수모델을 더 이상 학습을 못할 경우(loss, metric등의 개선이 없을 경우)나 오버피팅을 방지하기 위해 지정된 값에 도달하면 학습 도중 미리 학습을 종료시키는 함수. class myCallback(tf.keras.callbacks.Callback): def on_epoch_end(self, epoch, logs = {}): if(logs.get('accuracy')>0.90): print('\n정확도가 90% 이상이면 학습을 멈춥니다.') self.model.stop_training = True my_cb = myCallback() mycallback을 함수로 지정하여 사용. model.fit(train_generator, steps_per_epoch=8, epochs =..

    Learning Curve // 학습곡선

    Learning Curve 학습 곡선은 특정 기술 또는 지식을 실제 필요한 업무와 같은 환경에서 효율적으로 사용하기 위해 드는 학습 비용을 의미하기도 하며 특정 기술을 습득할 때에 처음에는 학습 효과가 더디다가 어느 정도 이해를 하고 나면 빠르게 습득하고 후에는 다시 더뎌지는 곡선을 나타내기도 한다 - 위키백과 학습 곡선은 보통 Train set과 Validation(test) set에 대해서 각각 loss와 metric을 훈련 중간중간 마다 체크한 곡선을 말한다. 학습곡선을 사용하면 loss와 metrics의 수치를 숫자와 시각적으로 확인할 수 있으며, 모델이 underfit되는지 overfit되는지 바로 알 수 있다. 학습 곡선 사용 방법 Train set과 Validation set의 loss가 같..

    딥러닝 Keras에서 loss함수의 종류와 선택 방법 및 코드

    loss 함수란? 손실 함수는 값을 예측하려할 때 데이터에대한 예측값과 실제의 값을 비교하는 함수로 모델을 훈련시킬 때 오류를 최소화 시키기 위해 사용되며, 주로 회귀(regression)에서 사용한다. 모델의 성능을 올리기 위해 loss함수를 임의적으로 변형할 수 있다. 예시 model.compile(loss='mean_squared_error', optimizer='sgd') 손실함수의 종류 Mean_Squared_error 예측한 값과 실제 값 사이의 평균 제곱 오차를 정의한다. 공식이 매우 간단하며, 차가 커질수록 제곱 연산으로 인해서 값이 더욱 뚜렷해진다. 그리고 제곱으로 인해서 오차가 양수이든 음수이든 누적 값을 증가시킨다. RMSE(Root Mean Squared Error) MSE에 루트(..