blusky10.tistory.com Open in urlscan Pro
211.231.99.250  Public Scan

URL: http://blusky10.tistory.com/
Submission: On November 01 via api from US — Scanned from DE

Form analysis 9 forms found in the DOM

POST /comment/add/629

<form method="post" action="/comment/add/629" onsubmit="return false" style="margin: 0">
  <div class="communicateWrite">
    <div class="name guest">
      <label for="name">NAME</label>
      <input id="name" type="text" name="name" value="">
    </div>
    <div class="password guest">
      <label for="password">PASSWORD</label>
      <input id="password" type="password" maxlength="8" name="password" value="">
    </div>
    <div class="homepage guest">
      <label for="homepage">HOMEPAGE</label>
      <input id="homepage" type="text" name="homepage" value="http://">
    </div>
    <div class="textarea"><textarea name="comment" rows="10" cols="50"></textarea></div>
    <div class="submit"><input type="submit" value="WRITE" onclick="addComment(this, 629); return false;"></div>
    <div class="secret">
      <label for="secret">SECRET</label>
      <input id="secret" type="checkbox" name="secret">
    </div>
    <div class="clear"></div>
  </div>
</form>

POST /comment/add/628

<form method="post" action="/comment/add/628" onsubmit="return false" style="margin: 0">
  <div class="communicateWrite">
    <div class="name guest">
      <label for="name">NAME</label>
      <input id="name" type="text" name="name" value="">
    </div>
    <div class="password guest">
      <label for="password">PASSWORD</label>
      <input id="password" type="password" maxlength="8" name="password" value="">
    </div>
    <div class="homepage guest">
      <label for="homepage">HOMEPAGE</label>
      <input id="homepage" type="text" name="homepage" value="http://">
    </div>
    <div class="textarea"><textarea name="comment" rows="10" cols="50"></textarea></div>
    <div class="submit"><input type="submit" value="WRITE" onclick="addComment(this, 628); return false;"></div>
    <div class="secret">
      <label for="secret">SECRET</label>
      <input id="secret" type="checkbox" name="secret">
    </div>
    <div class="clear"></div>
  </div>
</form>

POST /comment/add/627

<form method="post" action="/comment/add/627" onsubmit="return false" style="margin: 0">
  <div class="communicateWrite">
    <div class="name guest">
      <label for="name">NAME</label>
      <input id="name" type="text" name="name" value="">
    </div>
    <div class="password guest">
      <label for="password">PASSWORD</label>
      <input id="password" type="password" maxlength="8" name="password" value="">
    </div>
    <div class="homepage guest">
      <label for="homepage">HOMEPAGE</label>
      <input id="homepage" type="text" name="homepage" value="http://">
    </div>
    <div class="textarea"><textarea name="comment" rows="10" cols="50"></textarea></div>
    <div class="submit"><input type="submit" value="WRITE" onclick="addComment(this, 627); return false;"></div>
    <div class="secret">
      <label for="secret">SECRET</label>
      <input id="secret" type="checkbox" name="secret">
    </div>
    <div class="clear"></div>
  </div>
</form>

POST /comment/add/626

<form method="post" action="/comment/add/626" onsubmit="return false" style="margin: 0">
  <div class="communicateWrite">
    <div class="name guest">
      <label for="name">NAME</label>
      <input id="name" type="text" name="name" value="">
    </div>
    <div class="password guest">
      <label for="password">PASSWORD</label>
      <input id="password" type="password" maxlength="8" name="password" value="">
    </div>
    <div class="homepage guest">
      <label for="homepage">HOMEPAGE</label>
      <input id="homepage" type="text" name="homepage" value="http://">
    </div>
    <div class="textarea"><textarea name="comment" rows="10" cols="50"></textarea></div>
    <div class="submit"><input type="submit" value="WRITE" onclick="addComment(this, 626); return false;"></div>
    <div class="secret">
      <label for="secret">SECRET</label>
      <input id="secret" type="checkbox" name="secret">
    </div>
    <div class="clear"></div>
  </div>
</form>

POST /comment/add/625

<form method="post" action="/comment/add/625" onsubmit="return false" style="margin: 0">
  <div class="communicateWrite">
    <div class="name guest">
      <label for="name">NAME</label>
      <input id="name" type="text" name="name" value="">
    </div>
    <div class="password guest">
      <label for="password">PASSWORD</label>
      <input id="password" type="password" maxlength="8" name="password" value="">
    </div>
    <div class="homepage guest">
      <label for="homepage">HOMEPAGE</label>
      <input id="homepage" type="text" name="homepage" value="http://">
    </div>
    <div class="textarea"><textarea name="comment" rows="10" cols="50"></textarea></div>
    <div class="submit"><input type="submit" value="WRITE" onclick="addComment(this, 625); return false;"></div>
    <div class="secret">
      <label for="secret">SECRET</label>
      <input id="secret" type="checkbox" name="secret">
    </div>
    <div class="clear"></div>
  </div>
</form>

POST /comment/add/623

<form method="post" action="/comment/add/623" onsubmit="return false" style="margin: 0">
  <div class="communicateWrite">
    <div class="name guest">
      <label for="name">NAME</label>
      <input id="name" type="text" name="name" value="">
    </div>
    <div class="password guest">
      <label for="password">PASSWORD</label>
      <input id="password" type="password" maxlength="8" name="password" value="">
    </div>
    <div class="homepage guest">
      <label for="homepage">HOMEPAGE</label>
      <input id="homepage" type="text" name="homepage" value="http://">
    </div>
    <div class="textarea"><textarea name="comment" rows="10" cols="50"></textarea></div>
    <div class="submit"><input type="submit" value="WRITE" onclick="addComment(this, 623); return false;"></div>
    <div class="secret">
      <label for="secret">SECRET</label>
      <input id="secret" type="checkbox" name="secret">
    </div>
    <div class="clear"></div>
  </div>
</form>

POST /comment/add/622

<form method="post" action="/comment/add/622" onsubmit="return false" style="margin: 0">
  <div class="communicateWrite">
    <div class="name guest">
      <label for="name">NAME</label>
      <input id="name" type="text" name="name" value="">
    </div>
    <div class="password guest">
      <label for="password">PASSWORD</label>
      <input id="password" type="password" maxlength="8" name="password" value="">
    </div>
    <div class="homepage guest">
      <label for="homepage">HOMEPAGE</label>
      <input id="homepage" type="text" name="homepage" value="http://">
    </div>
    <div class="textarea"><textarea name="comment" rows="10" cols="50"></textarea></div>
    <div class="submit"><input type="submit" value="WRITE" onclick="addComment(this, 622); return false;"></div>
    <div class="secret">
      <label for="secret">SECRET</label>
      <input id="secret" type="checkbox" name="secret">
    </div>
    <div class="clear"></div>
  </div>
</form>

POST /comment/add/621

<form method="post" action="/comment/add/621" onsubmit="return false" style="margin: 0">
  <div class="communicateWrite">
    <div class="name guest">
      <label for="name">NAME</label>
      <input id="name" type="text" name="name" value="">
    </div>
    <div class="password guest">
      <label for="password">PASSWORD</label>
      <input id="password" type="password" maxlength="8" name="password" value="">
    </div>
    <div class="homepage guest">
      <label for="homepage">HOMEPAGE</label>
      <input id="homepage" type="text" name="homepage" value="http://">
    </div>
    <div class="textarea"><textarea name="comment" rows="10" cols="50"></textarea></div>
    <div class="submit"><input type="submit" value="WRITE" onclick="addComment(this, 621); return false;"></div>
    <div class="secret">
      <label for="secret">SECRET</label>
      <input id="secret" type="checkbox" name="secret">
    </div>
    <div class="clear"></div>
  </div>
</form>

POST /comment/add/620

<form method="post" action="/comment/add/620" onsubmit="return false" style="margin: 0">
  <div class="communicateWrite">
    <div class="name guest">
      <label for="name">NAME</label>
      <input id="name" type="text" name="name" value="">
    </div>
    <div class="password guest">
      <label for="password">PASSWORD</label>
      <input id="password" type="password" maxlength="8" name="password" value="">
    </div>
    <div class="homepage guest">
      <label for="homepage">HOMEPAGE</label>
      <input id="homepage" type="text" name="homepage" value="http://">
    </div>
    <div class="textarea"><textarea name="comment" rows="10" cols="50"></textarea></div>
    <div class="submit"><input type="submit" value="WRITE" onclick="addComment(this, 620); return false;"></div>
    <div class="secret">
      <label for="secret">SECRET</label>
      <input id="secret" type="checkbox" name="secret">
    </div>
    <div class="clear"></div>
  </div>
</form>

Text Content

POLPID'S PENSIEVE

블로그 내 검색
 * Polpid's World
   * Development
     * Java
     * Algorithm
     * Frontend skills
     * Docker&Kubernetes
     * Design Pattern
     * GoogleCloud
     * AWS
     * DataBase
     * Tools
     * Linux
     * Elasticsearch
     * Ansible
     * Python
     * Git
     * Build
     * OS
     * Tech&Seminar
   * P's Life
   * Enjoy Life
     * 초짜 번역 히스토리
     * Games
     * 프라모델
     * Lego
     * 책을 읽자!!
     * 내 느낌은 말이죠~~
     * 나들이
     * 잡다구레

 * 말근우슴
 * 북북이
 * 우킹
 * 호정마마

196 / 218 / 683,304
JavaScript chart by amChartsSeriesZoom
Out100-200-1000600200400-400L262728293031010203Chart100%
11-01 20:55
 * 소중한 글 잘 보고 갑니다!! 감사합니다~
 * 신용카드랑 국내 운전면허증을 보여줬습니다. 그런데 아래 댓글 달아주신 분⋯
 * 저는 국내 운전면허증하고 신용카드를 보여줬었는데 감독자마다 차이가 있을지⋯
 * 저는 이글을 읽고 국내 신분증+ 그리고 신용카드(여기에 이름이 영문으로 ⋯
 * 저도 여권이 만료되서요....신용카드랑 운전면허증 모두 국내용으로 그냥 ⋯





전체 글

 * 만들면서 배우는 생성 AI 리뷰 2023.10.29
   
 * 크리에이티브 프로그래머 리뷰 2023.09.24
   
 * 챗 GPT 개발자 핸드북 리뷰 2023.08.26
   
 * 맥(Mac)에서 아나콘다(Anaconda) 제거하기 2023.08.11
   
 * MLOps 실전 가이드 리뷰 2023.07.23
   
 * 행동 데이터 분석 리뷰 2023.06.20
   
 * 머신러닝 관련 용어 2023.06.12
   
 * colab 에서 kaggle 설정 2023.06.07
   
 * Pandas 사용 2023.05.23
   


만들면서 배우는 생성 AI 리뷰

2023. 10. 29. 19:40
AI, GPT, 나는 리뷰어다, 한빛미디어

반응형


생성형 AI 에 대한 관심이 많아지고 이 분야를 공부하고 있었는데 마침 좋은 책이 리뷰도서 목록에 있어서 선택하게 되었다. 아무래도 분야가 넓고
수학, 통계, 프로그래밍 등이 섞여서 나오다 보니 무엇이 기초인지, 또는 무엇부터 공부를 해야 되는지 알기가 쉽지가 않았다. 그런데 다행히도
이번에 선택한 책을 보면서 전반적인 지식을 습득할 수 있게 되었다. 

이 책에는 이론도 나오고 프로그래밍에 대한 구현도 나온다. 그리고 수학 공식들도 나온다. 하지만 아래 그림처럼 자세한 설명을 해주고 있기 때문에
이론적인 내용을 이해하는데 큰 도움이 된다. 





파이썬 코드들도 중간중간 나오면서 따라 하면서 실습을 해볼 수 있다. 하지만 코드가 익숙하지 않더래도 코드부분은 생략하고 내용만 읽어간다면 기초
지식을 충분히 쌓을 수 있다.  





하지만 이 책을 가장 효율적으로 사용하는 방법은 실습과 병행하는 것이다. 이 책의 뒷부분으로 갈수록 코드도 길어지고 그래프와 공식들이 많이
나온다. 이런 부분들을 이해하기 위해서는 어느정도 파이썬 코드에 대한 이해가 필요하다. 

이 책은 많은 그림과 설명으로 독자들이 이해를 하는데 돕고 있는 책인것은 확실하다. 그리고 이 책을 이해하기 위해 독자가 갖추어야 하는 최소한의
지식으로는 파이썬 코드를 이해할수 있는 능력 정도가 될것 같다. 

  "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

728x90

반응형

좋아요공감
공유하기
페이스북으로 공유카카오스토리로 공유트위터로 공유URL 복사
게시글 관리

구독하기Polpid's Pensieve
저작자표시 비영리 변경금지

 * 카카오스토리
 * 트위터
 * 페이스북



'ENJOY LIFE > 책을 읽자!!' 카테고리의 다른 글

크리에이티브 프로그래머 리뷰  (0) 2023.09.24 챗 GPT 개발자 핸드북 리뷰  (0) 2023.08.26 MLOps 실전 가이드
리뷰  (0) 2023.07.23 행동 데이터 분석 리뷰  (0) 2023.06.20 AWS 기반 데이터 과학 리뷰  (0) 2023.05.21

NAME
PASSWORD
HOMEPAGE


SECRET




크리에이티브 프로그래머 리뷰

2023. 9. 24. 18:58
나는 리뷰어다, 크리에이티브 프로그래머, 한빛미디어

반응형


최근 일을 할때마다 모든게 어렵게 느껴지고 머리 회전이 잘 안되는 느낌을 자주 받았다. 마침 한빛 미디어 "나는 리뷰어다" 책 들 중에
"그리에이티브 프로그래머" 책이 있어서 한번 읽어보게 되었다. 과연 어떻게 하면 창의성을 더할수 있는지 도움을 받고 싶었다. 

기술지식, 커뮤니케이션, 제약조건, 비판적 사고, 호기심, 창의적 마인드셋, 창의적 기법.

이 책은 이렇게 7가지 주제를 갖고 있다. 그 중 내가 인상깊게 읽었던 부분을 써보고려고 한다.





"수집가의 오류"
우리의 기억들은 한정적이기 때문에 자주 메모를 한다. 나 또한 개발을 하면서 다양한 툴들을 이용해서 링크를 저장해 놓거나 스크랩을 해놓는다.
하지만 이런 것들을 나중에 다시 보지는 않았다. 심지어 그 메모가 무슨 의미였는지 다시 찾아보는 일도 자주 발생했다. 무조건 적는다고 다
되는것이 아니라 잘 적어야 한다. 메모에도 기술이 필요하고 노하우가 필요하다. 책에서는 몇가지 툴들을 소개해주고 있다. 하지만 내가 생각하는
메모에서 가장 중요한 점은 어떤 툴을 사용하느냐가 아니라 어떻게 자신만의 노트를 만드느냐 인것 같다. 온라인 툴을 사용하기 전에 직접 노트에
여러가지 색깔의 펜을 사용해 가면서 자신만의 메모 노트를 만들었던 것 처럼 온라인 툴을 이용하여 자신만의 노트를 만드는 노하우가 메모에서 가장
중요하다고 생각한다. 





비판적 검증
이부분은 읽으면서 정말 반성을 많이 했다. 나도 코드를 작성하면서 비슷한 행동을 많이 했었다. 검증은 해보지 않고 그저 추측만으로 혹은 당연히
되겠지라는 생각을 많이 하고 코드를 작성을 했다. 당연한것, 그리고 원래 그런것들에 대해서 의심을 하지 않았다. 추측만으로는 실력이 늘지 않을
뿐더러 기능에 대한 정확한 이해도 불가능 하다. 그래서 코드에 대한 비판적인 의심은 모든 프로그래머들이 갖추어야 할 소양이 아닐까 생각이
든다. 

내가 맨 처음에 고민을 하긴 했지만 결국 우리는 모두 창의적일 수 있다. 이 책에서도 그렇게 언급하고 있고 나 자신도 그걸 알고 있다. 단지
어느 순간 막힘이 있을 때에 자신만의 방법으로 해결 할수 있는 방법이 필요하다. 그리고 내가 책을 읽은 것처럼 책을 통해서 도움을 받을
수도있다. 창의성에 대한 고민이 있는 개발자들에게 한번쯤 읽어보라고 추천하고 싶다. 

 "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

728x90

반응형

좋아요공감
공유하기

게시글 관리

구독하기Polpid's Pensieve
저작자표시 비영리 변경금지

 * 카카오스토리
 * 트위터
 * 페이스북



'ENJOY LIFE > 책을 읽자!!' 카테고리의 다른 글

만들면서 배우는 생성 AI 리뷰  (0) 2023.10.29 챗 GPT 개발자 핸드북 리뷰  (0) 2023.08.26 MLOps 실전 가이드
리뷰  (0) 2023.07.23 행동 데이터 분석 리뷰  (0) 2023.06.20 AWS 기반 데이터 과학 리뷰  (0) 2023.05.21

NAME
PASSWORD
HOMEPAGE


SECRET




챗 GPT 개발자 핸드북 리뷰

2023. 8. 26. 12:55
Chat GPT, GPT, langchain, prompt, 나는 리뷰어다, 한빛미디어

반응형


 

최근에 Chat GPT 에 대한 관심이 정말 뜨겁다. 다양 분야에서 Chat GPT 를 적용하려고 시도하고 있다. 하지만 단순 검색(?)으로
활용하는것 이외에 어떻게 질문을 해야하는지 정확히 모르는 경우가 많다. 나도 GPT 를 사용할 때에 구글 검색 대신 사용하는 경우가 많았다.
그러던 중 GPT 에 대한 기본적인 지식과 사용법을 알수 있는 책을 읽게 되었다. 최근에 읽었던 기술 서적 중에서는 가장 읽기 쉬었고
재미있었다.

다음은 내가 책을 읽으면서 기억하면 좋을것 같은 단어, 또는 정의를 메모해봤다. GPT 또는 LLM 을 찾아보면 항상 나오는 단어들이다. 책에서
쉽게 설명해준 덕분에 이해하는데 많은 도움이 됐다. 

프롬프트  & 프롬프트 엔지니어링
- 프롬프트 : AI 모델에게 내리는 지시사항.
- 프롬프트 엔지니어링 : AI 모델이 좋은 결과물을 내도록 잘 지시하는 방법.

프롬프트 엔지니어링 노하우
- 지시는 짧고 간결하게. 그리고 확실하게 한다. 
- 내용이 길다면 구역 확실하게 정해주기. 
- 답변 방식 확실히 정해주기 (표, json, html 등)
- 예시 들어주기 : few-shot example

랭체인
- LLM 개발을 쉽게 만들어주는 소프트웨어 프레임워크
- 다양한 AI 모델, 에이전트 및 프롬프트를 구조적 방식으로 만들고 연결할 수 있는 파이썬 라이브러리
- 랭체인의 구성요소





임베딩
- 단어를 많이 쌓아서 분류해 둔 LLM 내의 언어 창고 안에서 어떤 위치의 무엇과 제일 가까운지 컴퓨터가 쉽게 찾을 수 이쓴ㄴ 형태로 변환해
주는것.
- 임베딩은 단어나 문장의 의미와 문맥을 반영하여 이를 통해 컴퓨터는 단어나 문장 사이의 관계를 이해하고 문장을 생성하거나 분류하는 작업을
수행할 수 있다.
- 임베딩이 사용되는 분야 : 검색, 클러스터링, 추천, 이상탐지, 다양성측정, 분류.

여기에는 기록하지 않았지만 실습을 통해서 GPT 를 사용해보는 내용이라든지 코드를 이용해서 실행하는 방법들도 쉽게 따라해볼수 있었다. 최근들어
GPT 관련 공부를 어떻게 해야 할지 막막했었는데 이 책을 통해서 많은 것들을 이해할 수 있었다. 나처럼 GPT 에 대해서 공부하는데 어려움을
겪고 있는 분들이라면 한번 읽어보는 것을 추천한다.

 

  "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

728x90

반응형

좋아요공감
공유하기

게시글 관리

구독하기Polpid's Pensieve
저작자표시 비영리 변경금지

 * 카카오스토리
 * 트위터
 * 페이스북



'ENJOY LIFE > 책을 읽자!!' 카테고리의 다른 글

만들면서 배우는 생성 AI 리뷰  (0) 2023.10.29 크리에이티브 프로그래머 리뷰  (0) 2023.09.24 MLOps 실전 가이드
리뷰  (0) 2023.07.23 행동 데이터 분석 리뷰  (0) 2023.06.20 AWS 기반 데이터 과학 리뷰  (0) 2023.05.21

NAME
PASSWORD
HOMEPAGE


SECRET




맥(MAC)에서 아나콘다(ANACONDA) 제거하기

2023. 8. 11. 14:34
Anaconda, Mac, 삭제, 아나콘다, 파이썬

반응형


1. 아나콘다 설치 경로 확인하기

➜  ~ conda info                      

     active environment : None
            shell level : 0
       user config file : /Users/sanghyunkim/.condarc
 populated config files : 
          conda version : 23.3.1
    conda-build version : 3.23.3
         python version : 3.10.10.final.0
       virtual packages : __archspec=1=x86_64
                          __osx=10.16=0
                          __unix=0=0
       base environment : /usr/local/anaconda3  (writable)
      conda av data dir : /usr/local/anaconda3/etc/conda
  conda av metadata url : None
           channel URLs : https://repo.anaconda.com/pkgs/main/osx-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/osx-64
                          https://repo.anaconda.com/pkgs/r/noarch
          package cache : /usr/local/anaconda3/pkgs
                          /Users/sanghyunkim/.conda/pkgs
       envs directories : /usr/local/anaconda3/envs
                          /Users/sanghyunkim/.conda/envs
               platform : osx-64
             user-agent : conda/23.3.1 requests/2.28.1 CPython/3.10.10 Darwin/22.5.0 OSX/10.16
                UID:GID : 501:20
             netrc file : None
           offline mode : False

2. 아나콘다 삭제 

위에서 확인한 설치 경로를 적어주면 된다.

 rm -rf /usr/local/anaconda3

혹시  permission 에러가 나면 sudo 를 붙여서 실행하면 된다.

3. 환경변수 설정 변경

아나콘다 관련 환경 변수와 설정을 제거하려면 사용자 홈 폴더에 있는 .bash_profile, .bashrc, .zshrc 같은 파일에서
아나콘다 경로 참조를 삭제해야 한다. 아래 내용은 아나콘다 설치시 .zshrc 에 설정해놓은 부분이다. 

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/usr/local/anaconda3/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/usr/local/anaconda3/etc/profile.d/conda.sh" ]; then
        . "/usr/local/anaconda3/etc/profile.d/conda.sh"
    else
        export PATH="/usr/local/anaconda3/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda initialize <<<

4. 환경변수 적용

source source ~/.zshrc

728x90

반응형

좋아요1
공유하기

게시글 관리

구독하기Polpid's Pensieve
저작자표시 비영리 변경금지

 * 카카오스토리
 * 트위터
 * 페이스북



'DEVELOPMENT > PYTHON' 카테고리의 다른 글

머신러닝 관련 용어  (0) 2023.06.12 colab 에서 kaggle 설정  (0) 2023.06.07 Pandas 사용  (0)
2023.05.23 NumPy 사용  (0) 2023.05.09 Conda python 버전 업데이트  (0) 2023.04.15

NAME
PASSWORD
HOMEPAGE


SECRET




MLOPS 실전 가이드 리뷰

2023. 7. 23. 11:21
ML Ops, 나는 리뷰어다, 실전 가이드, 한빛미디어

반응형


이 책은 실전 입문이라는 책 답게 ML 모델의 개발부터 배포, 운영까지의 전 과정을 다루고 있다. 머신 러닝 모델의 생애 주기를 다루면서 ML
Ops의 필요성과 중요성을 알수 있다. 

책은 총 12개의 장으로 구성되어 있고 각 장마다 다른 주제를 다루고 있다. 첫 장과 두번째 장에서는 ML Ops 의 기본 개념과 장점을
소개하고 있으며 세번째 장부터는 실전적인 내용들을 차례대로 접근한다. 데이터 수집, 모델 훈련, 평가, 배포, 모니터링, 유지지보수, 그리고
AWS, Azure, GCP 환경에서 활용하는 방법 등을 설명해준다. 

최근 몇년 동안 머신 러닝 모델의 훈련과 개발은 크게 발전했지만 이를 공부하고 운영환경에 적용하는데에는 여전히 어렵다는게 현실이다. 그리고
개개인이 스스로 공부를 하면서 구축을 해보기에는 많은 도전과 시행착오가 필요하다. 그리고 여기저기 인터넷에 내용들이 많이 있지만 어떤 것들을
참고해봐야 할지 조차도 판단하기 어렵다. 그에 비해서 이 책은 ML Ops의 개념을 이해하기 쉽게 설명하고, 구현에 필요한 다양한 도구와
기술들을 소개함으로써 이러한 어려움을 해소해 주고있다.

그렇기 때문에 이 책은 개발자, 시스테관리자, 클라우드 엔지니어 등과 같이 머신 러닝모델을 개발하고 운영하는데 관심이 있는 모든 분들에게 도움이
될것 같다. 그리고 초보자들도 따라할 수 있도록 자세한 가이드를 제공하기 때문에 하나하나 따라 해볼수 있을 것이다. 

  "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

728x90

반응형

좋아요공감
공유하기

게시글 관리

구독하기Polpid's Pensieve
저작자표시 비영리 변경금지

 * 카카오스토리
 * 트위터
 * 페이스북



'ENJOY LIFE > 책을 읽자!!' 카테고리의 다른 글

크리에이티브 프로그래머 리뷰  (0) 2023.09.24 챗 GPT 개발자 핸드북 리뷰  (0) 2023.08.26 행동 데이터 분석
리뷰  (0) 2023.06.20 AWS 기반 데이터 과학 리뷰  (0) 2023.05.21 머신러닝 시스템 설계 리뷰  (1)
2023.04.22

NAME
PASSWORD
HOMEPAGE


SECRET




행동 데이터 분석 리뷰

2023. 6. 20. 23:03
나는 리뷰어다, 데이터, 머신러닝, 한빛 미디어, 행동 데이터 분석

반응형


내가 이 책을 선택 한 이유는 최근에 머신 러닝 관련 해서 관심을 갖고 있었고 데이터 분석에 대한 내용이 궁금 했기 때문이었다. 머신러닝에
관심은 있지만 아직은 공부하는데 어려움을 겪고 있었기에 최근에 관련 책들을 읽어보고 있으나 이마저도 이해하는데는 쉽지 않은것 같다. 

이 책은 데이터를 어떻게 분석을 하는지에 대한 내용을 담고있다. 우리가 매일매일 무수히 많은 도구를 통해서 얻을 수 있는 데이터들을 어떻게
연관짓고, 어떻게 의미있는 결과로 도출 하는지에 대한 내용들이다. 거기에다 그것을 이용한 사용자의 행동들을 어떻게 유추할 수 있는지 알려준다. 

이 책을 읽으면서 내가 느꼈던 부분들은 다음과 같다 
- 이 책은 수식이 들어가지 않는 설명 부분은 이해하는데 큰 어려움이 없었다.
- 수식은 내게는 어려웠다. 선형대수학, 미적분학등 기호조차도 생소한 수식은 이해할수가 없었다. 
- 차트와 관련된 내용은 이해까지는 가능 했지만 관련 통계 용어가 나오는 부분들은 어려웠다. (일단 통계 용어 자체도 생소했기 때문이다.)
- R과 파이썬 관련 예제들은 그냥 스킵해도 된다. 예제들이 있긴 하지만 코드보다는 설명을 더 꼼꼼히 읽어보는게 더 낫다는 생각이 들었다.
코드가 없었어도 이상하지 않았을것 같다. 

모든 머신러닝 관련 책들은 내 기준에는 쉽지 않은 책들이다. 이 책도 마찮가지 이다. 쉬운부분이 있긴 하지만 문제는 쉬운 부분 가지고는 공부에
발전이 없다. 이런 종류의 책들을 좀더 읽어보면 언젠가는 쉽게 다가올수 있지 않을까 생각이 된다. 한마디로 열심히 읽어야 한다. ^^

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

728x90

반응형

좋아요공감
공유하기

게시글 관리

구독하기Polpid's Pensieve
저작자표시 비영리 변경금지

 * 카카오스토리
 * 트위터
 * 페이스북



'ENJOY LIFE > 책을 읽자!!' 카테고리의 다른 글

챗 GPT 개발자 핸드북 리뷰  (0) 2023.08.26 MLOps 실전 가이드 리뷰  (0) 2023.07.23 AWS 기반 데이터 과학
리뷰  (0) 2023.05.21 머신러닝 시스템 설계 리뷰  (1) 2023.04.22 김범준의 핸즈온 리액트 네이티브 리뷰  (0)
2023.03.24

NAME
PASSWORD
HOMEPAGE


SECRET




머신러닝 관련 용어

2023. 6. 12. 08:23
ML, 강화, 군집, 머신러닝, 분류, 비지도학습, 지도학습, 회귀

반응형


지도학습

 * 회귀(Regression) : 정답이 연속형 변수
 * 분류(Classification) : 정답이 비연속형(범주형) 변수

비지도 학습

 * 군집분석(Clustering) : 주어진 데이터가 어떻게 구성되어있는지.
 * 강화학습(Reinforcement Learning) : 행동에 따른 보상을 최대화 시키는 방법

선형회귀(LINEAR REGRESSION)

 * 예측값을 직선으로 표현하는 모델
 * 실제 값을 잘 예측하는것을 목표로 한다.

CLASSIFICATION 과 CLUSTERING 의 차이

 * Classification 은 새로운 데이터를 알고있는 레이블에 포함시키는것.
   * 정해진 그룹의 데이터를 파악하여 특징을 찾아 새로운 데이터를 정해진 그룹에 포함시키는것.
 * Clustering 은 데이터의 패턴을 찾아 그룹을 만들어 내는것. 
   * 유사한 성질을 갖고 있는 것끼리 그룹을 만드는것.
   * 데이터 세트의 그룹이 2개가 될수 있고 3개가 될수도 있다. 

인공신경

 * 노드, 엣지로 이루어진다.
 * weight(중요도) 곱하고 bias(민감도) 더한다. (함수이다.)
 * AI 가 학습한다 라는 것은 주어진 입력에 대해서 원하는 출력이 나오도록 W, B 를 AI 가 알아내는것을 의미한다.

HYPERPARAMETER (정해줘야 하는 숫자 ) <> 반대로 AI 가 정하는 숫자는 파라미터 (WEIGHT, BIAS)

 * Epoch : 전체 데이터를 몇번 반복할것인지. - 하나의 Epoch 은 전체 데이터 셋에 대해서 forward pass, backward
   pass 과정을 거친것을 말한다.
 * Batch size : 하나의 Epoch 을 돌때 데이터를 나눠서 학습하기도 하는데 나누어진 데이터를 Batch 라고 하며 그 크기를
   Batch size 라고 한다.
 * Iteration : 하나의 Epoch 을 완료할때 필요한 Batch 수
   * EX : 700 개의 데이터 를 하나당 100개씩 batch 로 나누었을때 1-epoch 을 위해서는 7 Iteration 이
     필요하다.

TRAINING VS TEST (VS VALIDATION)

 * Training data : 파라미터 학습을 위한 data
 * Test data : 최종적으로 학습된 모델 테스트용 data
 * Validation Data : 하이퍼 라마미터 선택을 위한 data
 * Test data 로 학습을 하면 안된다. 이유는 Test Data 로 학습을 하게 되면 처음 보는 data에 대한 결과값을 얻을수 없기
   때문이다.


          



728x90

반응형

좋아요공감
공유하기

게시글 관리

구독하기Polpid's Pensieve
저작자표시 비영리 변경금지

 * 카카오스토리
 * 트위터
 * 페이스북



'DEVELOPMENT > PYTHON' 카테고리의 다른 글

맥(Mac)에서 아나콘다(Anaconda) 제거하기  (0) 2023.08.11 colab 에서 kaggle 설정  (0) 2023.06.07
Pandas 사용  (0) 2023.05.23 NumPy 사용  (0) 2023.05.09 Conda python 버전 업데이트  (0)
2023.04.15

NAME
PASSWORD
HOMEPAGE


SECRET




COLAB 에서 KAGGLE 설정

2023. 6. 7. 08:41
Colab, Kaggle, Python, 환경설정

반응형


설치

!sudo pip install kaggle

Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/
Collecting kaggle
  Downloading kaggle-1.5.13.tar.gz (63 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 63.3/63.3 kB 4.4 MB/s eta 0:00:00
Successfully built kaggle
Installing collected packages: kaggle
Successfully installed kaggle-1.5.13

kaggle api 받기

 * kaggle 로그인 > profile > api > Create New Token 클릭
 * json 파일이 다운 로드 됨
 * json 파일에는 username 과 key 값이 존재함.

colab 에 kaggle.json 파일 생성 및 copy

# kaggle.json 파일을 colab 에 생성 (생성하지 않고 다운로드된 파일을 직접 업로드 해도 된다.)
!echo "{\"username\":\"########\",\"key\":\"###############################\"}" > kaggle.json

# kaggle 에서 받은 key 파일 이동
!cp kaggle.json ~/.kaggle/
!chmod 600 ~/.kaggle/kaggle.json

!kaggle --version

# 아래와 같이 username 과 key를 환경변수로 넣어줘도 된다는것 같은데 안되서 위 방법을 사용함.
!export KAGGLE_USERNAME=########
!export KAGGLE_KEY=###############################

 

728x90

반응형

좋아요공감
공유하기

게시글 관리

구독하기Polpid's Pensieve
저작자표시 비영리 변경금지

 * 카카오스토리
 * 트위터
 * 페이스북



'DEVELOPMENT > PYTHON' 카테고리의 다른 글

맥(Mac)에서 아나콘다(Anaconda) 제거하기  (0) 2023.08.11 머신러닝 관련 용어  (0) 2023.06.12 Pandas
사용  (0) 2023.05.23 NumPy 사용  (0) 2023.05.09 Conda python 버전 업데이트  (0) 2023.04.15

NAME
PASSWORD
HOMEPAGE


SECRET




PANDAS 사용

2023. 5. 23. 07:39
PANDAS, Python, 파이썬

반응형



시리즈(SERIES)

 * 데이터가 순차적으로 나열된 1차원 배열 형태
 * 딕셔터리로 Series 생성시 -> key 는 시리즈의 인덱스와 대응된다.
 * 리스트로 Series 생성시 -> 리스트의 인덱스가 시리즈의 인덱스로 대응된다.

dict_data = {'a':1,'b':2,'c':3}
series_data=pd.Series(dict_data)

a    1
b    2
c    3

list_data = ['2022-10-11',3.14,'ABC',100,True]
series_data1=pd.Series(list_data)

0    2022-10-11
1          3.14
2           ABC
3           100
4          True


데이터프레임(DATAFRAME)

 * 행과 열로 만들어지는 2차원 배열 형태
 * 열은 각각의 시리즈 객체이다. key 값이 열 이름이 된다.

dict_data = {'c0':[1,2,3],'c1':[4,5,6],'c2':[7,8,9],'c3':[10,11,12],'c4':[13,14,15]}
df=pd.DataFrame(dict_data)

   c0  c1  c2  c3  c4
0   1   4   7  10  13
1   2   5   8  11  14
2   3   6   9  12  15

 * 데이터 내용 확인
   * columns : 컬럼명 확인
   * head() : 상단 5개 확인
   * tail() : 하단 5개 확인
   * shape : 행,열 크기 확인
   * info() : 데이터에 대한 정보 확인 - 행,열 크기, 컬럼명
   * type() : 데이터 타입

 * 열선택
   * 열 1개 선택 : 시리즈 객체를 반환한다.

Index(['PassengerId', 'Survived', 'Pclass', 'Name', 'Sex', 'Age', 'SibSp',
       'Parch', 'Ticket', 'Fare', 'Cabin', 'Embarked'],
      dtype='object')

names = t['Name'].head()   # t.Name 으로도 사용 가능
print(names)
print(type(names))
0                                Kelly, Mr. James
1                Wilkes, Mrs. James (Ellen Needs)
2                       Myles, Mr. Thomas Francis
3                                Wirz, Mr. Albert
4    Hirvonen, Mrs. Alexander (Helga E Lindqvist)
Name: Name, dtype: object
<class 'pandas.core.series.Series'>

 *  열 다중 선택 : 데이터 프레임으로 반환 한다.

names_age = t[["Name", "Age"]]
print(names_age)
print(type(names_age))

                                           Name   Age
0                              Kelly, Mr. James  34.5
1              Wilkes, Mrs. James (Ellen Needs)  47.0
2                     Myles, Mr. Thomas Francis  62.0
3                              Wirz, Mr. Albert  27.0
4  Hirvonen, Mrs. Alexander (Helga E Lindqvist)  22.0
<class 'pandas.core.frame.DataFrame'>


데이터 필터링

PassengerId	Survived	Pclass	Name	Sex	Age	SibSp	Parch	Ticket	Fare	Cabin	Embarked
0	892	0	3	Kelly, Mr. James	male	34.5	0	0	330911	7.8292	NaN	Q
1	893	1	3	Wilkes, Mrs. James (Ellen Needs)	female	47.0	1	0	363272	7.0000	NaN	S
2	894	0	2	Myles, Mr. Thomas Francis	male	62.0	0	0	240276	9.6875	NaN	Q
3	895	0	3	Wirz, Mr. Albert	male	27.0	0	0	315154	8.6625	NaN	S
4	896	1	3	Hirvonen, Mrs. Alexander (Helga E Lindqvist)	female	22.0	1	1	3101298	12.2875	NaN	S

 * Boolean 인덱싱 : true 만 추출

# 35살 초과인 데이터 추출
d1 = t["Age"]>35
print(t[d1])

   PassengerId  Survived  Pclass  \
1           893         1       3   
2           894         0       2   
11          903         0       1   
13          905         0       2   
14          906         1       1

 * isin() : 각각의 요소가 데이터 프레임, 시리즈에 존재하는지 파악하여 true/false 반환

# Pclass 변수의 값이 1일 경우, True/False 값 반환
t['Pclass'].isin([1])

	PassengerId	Survived	Pclass	Name	Sex	Age	SibSp	Parch	Ticket	Fare	Cabin	Embarked
11	903	0	1	Jones, Mr. Charles Cresson	male	46.0	0	0	694	26.0000	NaN	S
12	904	1	1	Snyder, Mrs. John Pillsbury (Nelle Stevenson)	female	23.0	1	0	21228	82.2667	B45	S
14	906	1	1	Chaffee, Mrs. Herbert Fuller (Carrie Constance...	female	47.0	1	0	W.E.P. 5734	61.1750	E31	S
20	912	0	1	Rothschild, Mr. Martin	male	55.0	1	0	PC 17603	59.4000	NaN	C
22	914	1	1	Flegenheim, Mrs. Alfred (Antoinette)	female	NaN	0	0	PC 17598	31.6833	NaN

 *  isna() : 결측값은 true 반환, 그외에는 false 반환
 * notna() : 결측값은 false 반환, 그외에는 true 반환

9	901	0	3	Davies, Mr. John Samuel	male	21.0	2	0	A/4 48871	24.1500	NaN	S
10	902	0	3	Ilieff, Mr. Ylio	male	NaN	0	0	349220	7.8958	NaN	S

t["Age"].isna()[0:12]  #10번째에 Age 가 NaN
9     False
10     True			# NaN 은 true 값 반환
11    False

t[t["Age"].isna()].head()

	PassengerId	Survived	Pclass	Name	Sex	Age	SibSp	Parch	Ticket	Fare	Cabin	Embarked
10	902	0	3	Ilieff, Mr. Ylio	male	NaN	0	0	349220	7.8958	NaN	S

 * 결측치 제거
   * dropna(axis=0) : 결측치 존재하는 행 전체 제거
   * dropna(axis=1) : 결측치 존재하는 열 전체 제거
 * 이름과 인덱스로 행, 열 선택
   * loc[] : 행 이름과 열 이름 사용
   * iloc[] : 행번호와 열 번호 사용

# 나이가 35세 초과인 사람의 이름과 나이 출력
t.loc[t['Age']>35, ['Name', 'Age']]

 * 통계 관련 기능
   * mean() : 평균값
   * median() : 중앙값
   * describe() : 통계 요약
   * agg() : 여러개 열에 여러 함수 적용
   * groupby() : 그룹별 집계
   * value_counts() : 값 개수
 * 행, 열추가
   * DataFrame.loc[새로운 행 이름] = 데이터 값
   * DataFrame['열이름']

728x90

반응형

좋아요공감
공유하기

게시글 관리

구독하기Polpid's Pensieve
저작자표시 비영리 변경금지

 * 카카오스토리
 * 트위터
 * 페이스북



'DEVELOPMENT > PYTHON' 카테고리의 다른 글

머신러닝 관련 용어  (0) 2023.06.12 colab 에서 kaggle 설정  (0) 2023.06.07 NumPy 사용  (0)
2023.05.09 Conda python 버전 업데이트  (0) 2023.04.15 Mac 에서 Conda 설치  (0) 2023.04.05

NAME
PASSWORD
HOMEPAGE


SECRET


PREV 이전 1234···61 NEXT 다음

+ RECENT POSTS

 * 만들면서 배우는 생성 AI 리뷰
 * 크리에이티브 프로그래머 리뷰
 * 챗 GPT 개발자 핸드북 리뷰
 * 맥(Mac)에서 아나콘다(Anaconda) 제거하기
   


Powered by Tistory, Designed by wallel
Rss Feed and Twitter, Facebook, Youtube, Google+




티스토리툴바

Polpid's Pensieve구독하기
관리메뉴열기


개인정보

 * 티스토리 홈
 * 스토리
 * 포럼
 * 로그인


JavaScript chart by amCharts