IT 뉴스를 읽다가 발견한 재미난 뉴스가 하나 있었다.

  - https://news.hada.io/topic?id=16044

출처: GeekNews

 

 

어!? SQLite는 그냥 가벼운 맛에 사용하는 database 아니었나!?

 

SQLite에서 발표한 내용이라 믿지 못할 수 있지만, 테스트한 내용을 보면 믿을만한 것 같다.

  - https://sqlite.org/fasterthanfs.html

출처: SQLite

 

그런데, 정말 드라마틱한 속도 차이를 보이는 것은

read latency 그래프에서 보이는 것처럼 Win10과의 비교이다. 빠르다 !!!

 

하지만, 어디까지나 제한적인 상황에서만 SQLite 사용을 추천하고,

대용량이거나 MSA와 같은 상황에서는 Postgres를 사용하는 것이 훨 나은 선택이다.

  - https://news.hada.io/topic?id=6498

 

가만히 생각해보니 SQLite라는 것을 내가 처음 들어본 것은

Android 초창기에 플랫폼 컴파일 및 App 개발해본답시고 깔짝 깔짝 거릴 때이다.

그렇다! Android에서 지금도 사용하는

튼튼한 안정성을 갖고 있는 훌륭한데이터베이스인 것은 분명하다.

  - https://www.epicweb.dev/why-you-should-probably-be-using-sqlite

  - https://news.hada.io/topic?id=11561

 

SQLite에 대한 재미있는 히스토리를 알고 싶으신 분은 다음 인터뷰 내용을 한 번 살펴보기 바란다.

  - https://corecursive.com/066-sqlite-with-richard-hipp/

  - https://news.hada.io/topic?id=4558

 

재미있는 사실 중 하나는

토발즈 아저씨(?)가 Linux Kernel 개발을 위해 Git이라는 소스코드 버전관리 도구를 만든 것처럼

리차드 힙(Richard Hipp) 아저씨도 SQLite 개발을 위해 Fossil이라는 소스코드 버전관리 도구를 만들었다!!!

  - https://fossil-scm.org/

 

 

이제 SQLite를 직접 건드려보자.

 

 

1. SQLite 확인

어떤 버전을 어떻게 설치하면 되는지 공식 사이트를 통해서 확인해보자.

https://www.sqlite.org/

 

Download 메뉴에서 제일 앞에 Android를 위한 binary 파일부터 확인된다는 것이 조금 재미있었다 ^^

https://www.sqlite.org/download.html

 

 

2. Serverless Architecture

SQLite는 Server-Client Architecture가 아닌 Serverless Architecture 방식이다.

  - https://www.sqlite.org/serverless.html

출처: https://www.whatwant.com

 

그렇기 때문에 별도의 Server 설치 과정이 없다.

 

어!? 그러면 위에서 살펴본 SQLite의 다운로드 페이지는 뭐지!?

그냥 Command-Line Tool이다.

 

 

3. SQLite Tools in Ubuntu

① Install

Ubuntu 환경에서는 그냥 패키지 설치를 하면 된다.

> sudo apt install sqlite3

출처: https://www.whatwant.com

 

② Create database

설치된 tool 버전 확인 및 database 생성은 다음과 같이 실행할 수 있다.

> sqlite3 --version

> sqlite3 test.db

 

 

 

③ Create table and example

TABLE 생성 및 간단한 사용 예시는 다음과 같다.

sqlite> CREATE TABLE TEMP (
   ...> id INTEGER PRIMARY KEY,
   ...> name VARCHAR(10),
   ...> number VARCHAR(10));


sqlite> INSERT INTO TEMP(name, number) VALUES('whatwant', '123456789');


sqlite> SELECT * FROM TEMP;

1|whatwant|123456789


sqlite> .exit

 

 

생성된 database file도 확인할 수 있다.

 

④ command

중요한 명령어 몇 가지를 보자면 다음과 같다.

Command Comments
sqlite3 {database filename} 데이터 베이스 생성하면서 접속 (기존 데이터베이스가 있으면 읽어들임)
.open {database filename} 접속된 상태에서 데이터베이스 생성. 읽기 또는 변경
.help 도움말
.database 데이터베이스 파일 위치 보기
.table 테이블 목록 보기
.show 현재 설정 보기
.clone {database filename} 데이터베이스 복제
.mode {option} select 결과 출력 방식 (list / column) column 방식 추
.quit / .exit 프롬프트 종료

 

 

4. SQLite Tools in Python

Python을 이용해서 SQLite 사용하는 예시를 확인해보자.

 

일단 패키지 관리를 위해서 가상환경 설정부터 해놓자.

> python -m venv .venv

> source .venv/bin/activate

 

 

소스코드는 다음과 같이 작성했다.

import sqlite3

conn = sqlite3.connect('test.db')
cursor = conn.cursor()

cursor.execute('SELECT * FROM TEMP')
print(cursor.fetchall())

cursor.close()

 

실행해보면 다음과 같이 예쁘게 잘 나온다.

 

 

SQLite 활용에 대해서 공부하고 싶으신 분은 다음 링크 자료를 참조하면 좋다.

  - https://wikidocs.net/book/1530

 

file-system 사용해서 데이터를 처리하는 경우

SQLite 사용에 대해서도 같이 검토해보면 좋을 것 같다.

반응형

드디어 딥러닝으로 들어간다~!!! 고! 고!

 

 

 

인공 신경망 (Neural Network)

- 텐서플로(Tensorflow), 케라스(Keras)

- 이진 분류: binary_crossentropy, 다중 분류: categorical_crossentropy

- Dense → Sequential → compile → fit → evaluate

 

심층신경망

- model.summary()

- keras.layers.Flatten()

- relu

- optimizer

  . 기본 경사 하강법 옵티마이저: SGD, Momentum, nesterov

  . 적응적 학습률 옵티마이저: RMSprop, Adam, Adagrad

 

신경망 모델 훈련

- loss function

- epochs

- drop-out

- early stopping

 

 

 

기본 숙제 : Ch.07(07-1) 확인 문제 풀고, 풀이 과정 정리하기

 

1. 어떤 인공 신경망의 입력 특성이 100개이고 밀집층에 있는 뉴런 개수가 10개일 때 필요한 모델 파라미터의 개수는 몇 개인가요?

 

③ 1,010 개

 

→ 풀이

'wx + b'와 같기 때문에 뉴런의 개수가 10개이고 입력값이 100개라면 다음과 같이 계산할 수 있다.

10 * 100 + 10 = 1010

 

 

2. 케라스의 Dense 클래스를 사용해 신경망의 출력층을 만들려고 합니다. 이 신경망이 이진 분류 모델이라면 activation 매개변수에 어떤 활성화 함수를 지정해야 하나요?

 

② sigmoid

 

→ 풀이

이진 분류 모델이라면 0과 1로 수렴하는 형태가 유리하므로 sigmoid를 사용하는 것이 적합하다.

 

 

3. 케라스 모델에서 손실 함수와 측정 지표 등을 지정하는 메서드는 무엇인가요?

 

④ compile()

 

→ 풀이

간단한 형태의 코드 샘플을 통해 알아볼 수 있다.

dense = keras.layers.Dense(10, activation='softmax', input_shape=(784,))
model = keras.Sequential(dense)
model.compile(loss='sparse_categorical_crossentropy', metrics='accuracy')
model.fit(train_scaled, train_target, epochs=5)
model.evaluate(val_scaled, val_target)

 

 

4. 정수 레이블을 타깃으로 가지는 다중 분류 문제일 때 케라스 모델의 compile() 메서드에 지정할 손실 함수로 적절한 것은 무엇인가요?

 

① sparse_categorical_crossentropy

 

→ 풀이

One-Hot 방식인 경우 'categorical_crossentropy'를 사용하면 되고,

정수 레이블이라면 'sparse_categorical_crossentropy'를 사용하면 된다.

 

 

 

추가 숙제 : Ch.07(07-2) 확인 문제 풀고, 풀이 과정 정리하기

 

 

 

1. 다음 중 모델의 add() 메서드 사용법이 올바른 것은 어떤 것인가요?

 

② model.add(keras.layers.Dense(10, activation='relu'))

 

→ 풀이

보통 다음과 같은 형태로 작성하는 것을 권장하지만, 1-라인으로 작성한다면 ②번 형태로 작성하면 된다.

dense1 = keras.layers.Dense(10, activation='relu')
model.add( dense1 )

 

 

2. 크기가 300x300인 입력을 케라스 층으로 펼치려고 합니다. 다음 중 어떤 층을 사용해야 하나요?

 

② Flatten

 

→ 풀이

2차원 입력이 들어오면 1차원으로 변경하는 layer를 배치하면 된다.

 

keras.layers.Flatten(input_shape=(300, 300))

 

 

3. 다음 중에서 이미지 분류를 위한 심층 신경망에 널리 사용되는 케라스의 활성화 함수는 무엇인가요?

 

ⓑ relu

 

→ 풀이

relu 함수의 경우 "max(0, z)" 함수와 같은 형태로써 이미지 분류에서 유용하다.

 

 

4. 다음 중 적응적 학습률을 사용하지 않는 옵티마이저는 무엇인가요?

 

① SGD

 

→ 풀이

SGD(Stochestic Gradient Descent)는 기본 경사 하강법 옵티마이저의 가장 대표적인 위치에 있다.

반응형

뭔가 흐름이 끊겼지만, 포기하기는 싫어서 달려보련다!

목차 1
목차 2

 

 

06-1 군집 알고리즘 (Clustering)

- 비지도 학습

- 이미지(gray, 2차원) 데이터 다루기

 

06-2 k-평균 (KMeans)

- 하이퍼파라미터 (k)

- 최적의 k 찾기 : inertia

 

06-3 주성분 분석 (PCA)

- 차원축소

- PCA

- 설명된 분산 (explained variance ratio)

 

혼공학습 숙제

 

[ 기본 숙제 : k-평균 알고리즘 작동 방식 ]

- 비지도 학습(Unsupervised Learning)의 가장 대표적인 사례가 바로 군집화(Clustering)이다.

- 군집화(Clustering)의 가장 대표적인 알고리즘이 바로 K-평균(K-Means) 알고리즘이다.

 

- centroid(중심점)을 기준으로 데이터들과의 거리를 최소화하는 것을 목표로 한다.

- 거리를 계산하는 여러 방법이 있으나 보통 유클리드 거리(Euclidian Distance) 방식을 사용한다.

 

- 이를 이용하여 K-Means 알고리즘은 다음과 같은 방식으로 최적화 한다.

 

 

[ 추가 숙제 : Ch.06(06-3) 확인 문제 풀고, 풀이 과정 정리하기 ]

 

1. 특성이 20개인 대량의 데이터셋이 있습니다. 이 데이터셋에서 찾을 수 있는 주성분 개수는 몇 개일까요?

→ 주성분 분석(PCA)라는 것은 차원 축소 방법 중 하나로써, 원본 데이터의 특성 개수와 같거나 적을 수 있다.

     그러므로 정답은 ②번이긴 할텐데.... 사실 ①번이라고 해도 틀렸다고 하기 힘들지 않을까 한다.

     "이 데이터셋에서 찾을 수 있는 최대 주성분 개수는 몇 개일까요?"라고 하는 것이 맞을 것 같다.

 

2. 샘플 개수가 1,000개이고 특성 개수는 100개인 데이터셋이 있습니다. 즉 이 데이터셋의 크기는 (1000, 100)입니다. 이 데이터를 사이킷런의 PCA 클래스를 사용해 10개의 주성분을 찾아 변환했습니다. 변환된 데이터셋의 크기는 얼마일까요?

→ 10개의 주성분을 찾아 변환했다고 했으니 당연하게도 ①번이 정답이다.

 

3. 2번 문제에서 설명된 분산이 가장 큰 주성분은 몇 번째인가요?

→ 분산이 큰 것부터 정렬되므로 ①번 첫 번째 주성분의 분산이 가장 크다.

 

그냥 문제 풀기만 하니까 아쉬워서 직접 코드로 증명을 해봤다.

 

 

여기까지~!!

반응형

정리 한 번 하려다가 만날 미뤄뒀던 아이템을 광복절을 맞이하여 드디어 포스팅해본다.

 

소스코드를 Local PC에 두지 않고, 원격 서버에 저장해놓고 사용해야할 경우가 있다.

주로 실행 환경의 제약이 있어서 그렇게 해야하기도 하고,

아니면 에디터(IDE)를 따로 사용하고자 하는 경우에 그렇게 하기도 한다.

 

지금 하고자 하는 것을 그림으로 표현해보면 다음과 같다.

출처: https://www.whatwant.com

 

1. SSH

  - 일단, Local PC에서 Remote PC로 SSH 접속이 가능한 환경이어야 한다.

  - 그리고 가급적 SSH Public Key 방식으로 접근하는 것이 보안적으로도, 사용성 측면에서도 좋다.

    . SSH Public Key - SSH 공개키

    . 조금 더 알아보는 SSH Public Key

 

출처: https://www.whatwant.com

 

2. VSCode

  - Local PC에 VSCode가 설치되어 있어야 한다.

    . https://code.visualstudio.com

VSCode

 

  - Extensions 중에서 "Remote - SSH"를 선택해서 설치해야 한다.

Extensions : Remote - SSH

 

  - 설치가 완료되면, 오른쪽 메뉴에 뭔가 하나 더 추가된 것을 볼 수 있다.

Extensions : Remote - SSH

 

  - "Remote Explorer" 메뉴를 클릭하면 다음과 같은 화면을 볼 수 있다.

Extensions : Remote - SSH

 

3. Connect

  - 이제 Remote PC/Server에 연결을 해보자.

  - Remote Explorer에서 추가를 해도 좋고,

New Remote

 

  - "Ctrl + Shift + p" 해서 "Remote-SSH ..." 메뉴 중에서 "Connect Current Window to Host ..."를 선택하자.

Connect Current Window to Host ...

 

  - "+ Add New SSH Host..."를 선택하자.

+ Add New SSH Host...

 

  - 가이드 해주는대로 서버 정보를 입력하면 된다.

input

 

  - 뒤의 "-A" 옵션은 선택적이긴 하지만 같이 넣어주자.

input

 

  - 어디에 저장된 Key 값으로 입력할 것인지를 물어본다. 골라주면 된다.

select SSH Config

 

  - 접속 정보 입력은 끝났다.

  - "Connect"를 클릭하면, Remote PC/Server에 연결을 하면서 필요한 패키지들을 추가 설치한다.

Host added!

 

  - 짜잔! 되었다!

connected

 

4. Extensions of Remote

  - 그런데, 이렇게 Remote PC/Server를 연결하게 되면 기존에 사용하던 Extension들이 안보인다.

  - 필요한 것들을 하나씩 추가로 설치해줘야 된다. 이해가 되긴 하지만, 뭔가 불편하기도 하고....

Extensions

 

  - 하지만, 너무 좋다 !!!

VSCode for Remote

 

  - 지금 현재 작업하고 있는 위치가 어디인지는 오른쪽 아래 파란 내용을 보면 된다.

  - Terminal 환경도 너무 편하고, 작업 후 저장한 것이 바로 Remote PC/Server에 반영이 되니 이거 뭔가 좋다 !!!

 

 

반응형

'Programming' 카테고리의 다른 글

개발자라면 ... Google for Developers  (0) 2023.12.06
개발자들을 위한 AI 검색엔진 - phind  (0) 2023.04.30

요즘 저녁에 러닝을 하기 위해 격일로 조금 일찍 퇴근을 하는데.

비 예보가 있다는 것을 미처 인지하지 못해서 일도 못하고 러닝도 못하는 그런 사태가...

 

이런 핑계(?)로 갑자기 날씨 정보를 API로 얻어오는 것을 한 번 해보고 싶어졌다.

갑자기? 갑자기!

 

날씨 정보를 어디에서 얻어와야 할까!?

당연히 기상청 !!!

https://www.data.go.kr/data/15084084/openapi.do

 

무료인데다가 심지어 샘플 코드까지 제공해주고 있다.

샘플코드 - Python

 

사용을 위해서는 오른쪽 상단에 위치한 "활용신청"을 클릭하면 된다.

활용신청

 

적절한 내용으로 작성하여 신청하면, 즉시 승인이 된다.

신청 결과

 

상세 내용을 보면 다음과 같이 인증키 정보를 확인할 수 있다.

상세 내용

 

이제 잘 동작하는지 검증을 해보자.

 

1. Python 환경을 맞춰야 한다.

- requests 모듈을 사용하기 위해 설치가 필요하다.

 

2. 지역 위경도값을 확인하자.

- 공공데이터 포털에서 제공하는 참고문서를 다운로드 받아야 한다.

  . 기상청41_단기예보 조회서비스_오픈API활용가이드_(240715).zip

 

- 압축을 풀면 문서 파일이 2개 나오는데, 위경도 정보가 있는 엑셀 파일을 확인하면 된다.

 

- 내가 확인하고자 하는 지역의 X, Y 값을 확인하면 된다.

 

3. 코드 작성

- 다음과 같이 간단한 코드를 작성해보자.

  . API 키는 일반 인증키(Decoding )으로 사용했다.

 

- 실행 결과는 다음과 같이 나온다.

 

 

각 값들의 의미나 활용 관련하여서는 다운로드 받은 참고 자료 中 워드 파일을 살펴보면 된다.

sample

 

일단 기본적인 확인을 해봤으니,

아침에 자동으로 알람 오도록 만들어봐야겠다! ^^

반응형

cron에 대해서 그동안 한 번쯤은 포스팅 했을 줄 알았는데, 찾아보니 없어서 이번 기회에 한 번 정리해본다!

 

cron

- 주기적으로 실행해야 하는 작업(task)을 관리하기 위한 시간 기반 잡-스케줄러(Job Scheduler)

- 사용자들은 crontab 파일을 사용하여 특정 시간에 특정 명령이나 스크립트를 실행하도록 설정

- 시스템 유지보수 작업, 데이터 백업, 로그 분석 등 다양한 자동화 작업을 주기적으로 수행하는 데 사용

 

Linux 사용자라면 누구나 알고 있지만, 의외로 누구나 사용하지는 않는/못하는 도구이다 !!!

 

Unix 계열이라면 어디에나 존재하고 있는 시간 기반의 잡-스케줄러이고,

아주 기본이 되는 도구이다보니 이를 기반으로 동작하는 다른 유틸리티도 다양하게 존재하고 있다.

 

 

Etymology(어원)

 "cron"이라는 명칭은 어디에서 비롯되었을까?

 

- 그리스 신화에서 "시간의 본질"을 상징하는 신 "Chronos"에서 비롯되었다고 한다.

  . https://en.wikipedia.org/wiki/Cron

  . 왠지 시계 관련하여 많이 들어본 이름인 것 같다~

출처: chatgpt (by whatwant)

 

 

History (역사)

- 시작은 1975년 그 유명한 "AT&T Bell 연구소"에서 탄생되었다고 한다.

- Linux의 등장과 함께 다양한 cron alternative들이 등장하게 되는데

- 현재 가장 널리 퍼진 것은 1987년에 탄생된 vixie-cron 이라고 한다.

  . https://github.com/vixie/cron

https://github.com/vixie/cron/blob/master/Documentation/Changelog.md

 

- Red Hat에서 vixie-cron 4.1을 fork해서 만든 cronie 프로젝트도 있고,

  . https://github.com/cronie-crond/cronie

- vixie-cron과의 호환성을 보여주는 mcron 프로젝트도 있다.

  . https://github.com/Dale-M/mcron

 

 

Check

이번 포스팅을 작성하는 환경은 "Ubuntu 20.04.6 LTS" 이다.

다른 환경에서도 얼추 비슷하지 않을까 하지만, 혹시라도 다른 결과가 나올 수도 있다는 점은 유념 !!!

 

- 패키지 설치 여부

  . dpkg -l | grep cron

 

- 실행파일 위치

  . which cron

 

- 서비스 상태

  . systemctl status cron

출처: https://www.whatwant.com

 

 

crontab

- "cron table"의 약자로써, cron 데몬이 실행해야할 작업들의 스케줄을 정의한 테이블을 의미한다.

- 테이블을 작성/수정할 수 있도록 해주는 유틸리티 명칭이기도 하다.

- 첫 실행을 하면 어떤 에디터를 사용할 것인지 물어본다.

  . 개인적으로 애용하는 nano 에디터를 추천해줘서 더 반갑다!!! ^^

select-editor

 

- 정확히 표현하자면, 현재 사용하는 계정에서 처음 실행할 때 기본 에디터를 설정해주는 것이다.

crontab -e

 

- 각 계정별로 하나의 (cron) table이 주어진다.

- 간단한 가이드를 주석(#)에서 확인할 수 있다.

 

- cron 관련해서 항상 우리를 괴롭히는 익숙하지 않은 시간 표현 순서 !!!

 

 

- dom : day of month

- dow : day of week

 

- 잘 동작하는지 한 번 테스트 해보자.

sample

 

- 이미 알고 있겠지만, " * "는 every를 의미한다. 즉, 매분마다 환경변수들을 /tmp/env.output에 저장하게 된다.

 

 

Seperator (구분자)

정보를 입력할 때 각 값들을 구분하기 위해서 기본적으로 space 한 칸을 사용했을 것이다.

만약 space 두 칸을 사용해도 괜찮을까? 괜찮다! 여러개의 space를 사용해도 잘 인식한다.

심지어 tab을 사용해도 된다 !!!

 

 

Represent (표현식)

- 기본적인 내역은 다음과 같다.

 

- 특수 문자들은 다음과 같다.

 

 

Example (예시)

몇 가지 사례를 들어보자. ( "?"는 사실 낚시성일까나..... ㅋㅋ )

 

- 매일 오전 10시 15분에~

 

- 매일 오후 3시에 시작해서 5분마다 실행되어 오후 3시 55분에 끝나고,

  다시 오후 7시에 시작해서 5분마다 실행되어 오후 7시 55분에 끝남

 

- 매일 00시 30분부터  6시간 마다 실행 (00:30, 06:30, 12:30, 18:30)

 

 

- 평일(월요일~금요일) 1시 30분 부터 매 6시간 마다 실행 (01:30, 07:30, 13:30, 19:30)

 

 

Log

Ubuntu 환경에서 cron 로그를 위한 기본 경로는 "/var/log/cron.log" 이다. 하지만,

 

로그 기록을 활성화 시켜줘야 한다.

 

주석 처리 되어 있는 cron 부분을 확인 후, 주석 제거하고 저장하면 된다.

 

서비스 적용을 위해 rsyslog 재시작을 한 번 해주면 된다.

 

이제 cron이 잘 동작했는지 확인할 수 있는 로그를 볼 수 있게 되었다.

 

 

Remove (삭제)

현재 crontab 내역을 확인하고 싶으면 "-l" 옵션을 사용할 수 있다.

 

전체 내용을 삭제하고 싶다면, "-r" 옵션을 사용할 수 있다.

 

특정 스케줄만 삭제하고 싶다면? "-e" 옵션으로 편집 화면에서 해당 라인을 삭제하면 된다 !!!

 

 

Helper (도우미)

① CronTool (https://tool.crontap.com/cronjob-debugger)

   - 오른쪽 하단위 Cheetsheet를 보면 hour 부분에 Values Range 오타가 조금 아쉽긴 하지만,

 

  - 깔끔한 화면과 함께, 달력으로 설정 내역을 보여주는 것이 정말 괜찮다.

 

 

② Cronitor (https://crontab.guru/)

  - 정말 simple하고 URL 주소를 외우기도 쉽다.

 

 

③ CronMaker (http://www.cronmaker.com/?1)

  - 원하는 cron 표현식을 쉽게 만들 수 있도록 편리한 인터페이스를 제공해주고 있다.

 

 

지금까지 살펴본 내용 외에도 더 많은 것들이 남아있다.

cron의 세계는 의외로 넓다 !!

 

하지만, 한 번에 너무 많은 것을 알게 되면 다칠 수 있으므로(?) 여기에서 일단 마무리 해보련다 !!!

절대 지쳐서 그런 것 아니다! (그런가? ^^)

 

반응형

가족 여행 및 대학원 MT로 인해... 엄청난 지각 공부를 한다.

미리 하지 못했음에 대해 반성 !!!! 무릎 꿇고 반성 !!!

 

05-1 결정 트리 (Decision Tree)

- 로지스틱 회귀 (Logistic Regression)

- 결정 트리 (Decision Tree Classifier), 가지 치기(Prunning)

 

05-2 교차 검증과 그리드 서치

- 검증 세트 (validation)

- 교차 검증 (Cross Validation)

  . 분할기(Splitter)를 사용한 교차 검증 : StratifiedKFold

- 하이퍼파라미터 튜닝 (Hyperparameter Optimization)

  . 그리드 서치 (GridSearchCV)

  . 확률 분포 선택 : uniform, randint

  . 랜덤 서치 (RandomizedSearchCV)

 

05-3 트리의 앙상블 (Ensemble)

- 정형 데이터와 비정형 데이터

  . 텍스트/오디오/이미지/영상 등의 비정형 데이터는 주로 DL 에서 취급

- 랜덤 포레스트 (RandomForest)

- 엑스트라 트리 (ExtraTrees)

- 그래디언트 부스팅 (Gradient Boosting)

- 히스토그램 기반 그래디언트 부스팅 (Histogram Gradient Boosting)

- XGBoost vs LightGBM

 

 

 

 

기본 숙제 : 교차 검증을 그림으로 설명하기

 

추가 숙제 : 앙상블 모델 손 코딩

- 전체를 캡처하는 것은 무의미한 것 같아, 하단부 부분만 캡처 !!!

 

반응형

 

어느덧 벌써 4장을 공부하고 있는 3주차가 되었다.

만날 일요일 밤에 벼락치기하고 있는 불량한 참가자 신세이지만....

이렇게라도 공부하려하는 스스로를 기특해 해야지 !!!!! 쓰담~ 쓰담~

 

 

04-1 로지스틱 회귀 (Logistic Regression)

- 분류 (Classifier) 모델

- vs. KNeighborClassifier

- 이진 분류 : 시그모이드(Sigmoid)

- 다중 분류 : 소프트맥스(Softmax), parameter C

 

04-2 확률적 경사 하강법 (Stochastic Gradient Descent)

- 점진적 학습 → 확률적 경사 하강법

- 손실함수 (loss function)

- 로지스틱 손실 함수 (logistic loss function, Binary Cross-Entropy loss function)

- partial_fit()

 

 

가제트 형사를 그려주신 것 같은데... MZ(GenZ?) 분들은 아시려나!? ㅋㅋㅋ

 

 

 

Homework

 

 

[기본 숙제]

 

 

- ① 시그모이드 함수(Sigmoid Function)

 

→ 기본적으로 선형 함수만 사용하는 경우 결과값이 너무 커지거나 너무 작아질 수 있으므로

     비선형 함수를 이용하여 값을 수렴하게 만드는 것이 계산하기에 용이해진다.

     이 때, 로지스틱 회귀에서 이진 분류를 사용하는 경우 시그모이드 함수를 이용하면

     0에서 1사이의 값으로 변환이 되며, 0.5를 기준으로 0과 1로 결과를 판단하기에 적합하다.

 

[추가 숙제]

반응형

+ Recent posts