머신러닝 단기집중과정

텐서플로우 API 사용

Google의 실용적인 머신러닝 속성 입문 과정

https://developers.google.com/machine-learning/crash-course/


필수사항

머신러닝 단기집중과정에는 머신러닝에 관한 사전 지식이 필요하지 않습니다. 하지만 제시된 개념을 이해하고 실습을 완료하기 위해서는 다음과 같은 필수사항을 충족하는 것이 좋습니다.

기본 대수학 개념 숙지. 변수와 계수, 선형 방정식, 함수의 그래프, 히스토그램을 알고 있어야 합니다. 로그, 미분과 같은 고급 수학적 개념에 익숙하면 유용하지만 꼭 필요하지는 않습니다.

프로그래밍 기본사항 숙지 및 Python을 이용한 코딩 경험. 머신러닝 단기집중과정의 프로그래밍 연습은 텐서플로우를 이용하여Python으로 코딩되어 있습니다. 텐서플로우 사용 경험이 필요하지 않지만 함수 정의/호출, 목록과 사전, 루프, 조건식 등 기본 프로그래밍 구성체가 포함된 Python 코드를 쉽게 읽고 쓸 수 있어야 합니다.

참고: 머신러닝 단기집중과정에 사용되는 수학 및 프로그램 개념의 세부 목록은 각 개념의 참조 자료와 함께 아래의 주요 개념 및 도구 섹션을 참조하세요.사전 작업

프로그래밍 실습은 브라우저에서 바로 실행되므로 설정이 필요하지 않습니다. Colaboratory 플랫폼을 통해 실습이 실행됩니다. Colaboratory는 대부분의 주요 브라우저에서 지원되며 Chrome 및 Firefox 데스크톱 버전에서 가장 철저한 테스트를 거쳤습니다. 실습을 다운로드하여 오프라인에서 하시려면 다음의 안내에서 로컬 환경 설정에 관해 자세히 알아보세요.

Pandas 시작하기

머신러닝 단기집중과정의 프로그램 실습에서는 Pandas 라이브러리를 사용하여 데이터 세트를 조작합니다. Pandas에 익숙하지 않으면 실습에 사용된 주요 Pandas 기능이 설명된 실습에 사용된 주요 Pandas 기능이 설명된 Pandas 빠른 가이드를 참조하세요.

낮은 수준의 텐서플로우 기본 사항

머신러닝 단기집중과정의 프로그래밍 실습에서는 고급 tf.estimator API를 사용하여 모델을 구성합니다. 처음부터 텐서플로우 모델을 구성하려면 다음 가이드를 완료하세요.

TensorFlow Hello World 낮은 수준의 텐서플로우로 코딩된 'Hello World'.텐서플로우 프로그래밍 개념 텐서플로우 애플리케이션의 기본 구성요소 둘러보기: 텐서, 작업, 그래프, 세션.텐서 생성하고 조정하기 텐서 간이 입문서: 텐서플로우 프로그래밍의 중심 추상화. 선형 대수학의 행렬 덧셈과 곱셈에 관해서도 설명되어 있습니다.주요 개념 및 도구

머신러닝 단기집중과정에서는 다음과 같은 개념과 도구를 설명하고 적용합니다. 자세한 내용은 연결된 자료를 참조하세요.

수학대수학변수, 
계수, 
함수선형 방정식.
예: y=b+w1x1+w2x2>y=b+w1x1+w2x2로그 및 로그 방정식. 예: y=ln(1+ezy=ln(1+ez)시그모이드 함수선형 대수학텐서 및 텐서 차수행렬 곱셈삼각법Tanh (활성화 함수에 설명되어 있음, 사전 지식이 필요하지 않음)통계평균, 중앙값, 이상점, 표준 편차히스토그램을 읽을 수 있는 능력적분학(선택 사항, 고급 주제의 경우)미분의 개념 (실제로 미분을 계산할 필요는 없습니다.)경사도 또는 기울기편미분 (경사도와 긴밀한 관련이 있음)연쇄 법칙 (신경망 학습 시 역전파 알고리즘을 완전히 이해하기 위해 필요함)

Python 프로그래밍기본

Python

다음과 같은 Python 기본 사항이 Python 가이드에 설명되어 있습니다.

위치 및 키워드 매개변수를 사용한 함수 정의 및 호출

사전, 목록, 세트(만들기, 액세스, 반복)

for 루프, 반복 변수 여러 개를 사용한 for루프(예: for a, b in [(1,2), (3,4)])

if/else 조건부 블록 및 조건식

문자열 형식 지정 (예: '%.2f' % 3.14)

변수, 할당, 기본 데이터 유형 (int, float, bool, str(ing))

pass 문

중급 Python

다음과 같은 고급 Python 기능도 Python 가이드에 설명되어 있습니다.

목록 이해

람다 함수

타사 Python 라이브러리

머신러닝 단기집중과정 코드 예에서는 타사 라이브러리의 다음과 같은 기능을 사용합니다. 이러한 라이브러리에 관한 사전 지식은 필요하지 않습니다. 필요할 때 알아야 하는 것을 찾을 수 있습니다.

Matplotlib(데이터 시각화용)
pyplot 모듈
cm 모듈
gridspec 모듈
Seaborn(히트맵용)
heatmap 함수
Pandas(데이터 조작용)
DataFrame 클래스
NumPy(낮은 수준의 수학 연산용)
linspace 함수
random 함수
array 함수
arange 함수
scikit-learn(평가 측정항목용)
metrics 모듈
Bash 터미널/Cloud Console

로컬 머신이나 Cloud Console에서 프로그래밍 실습을 실행하려면 쉽게 명령줄을 사용할 수 있어야 합니다.

Bash 참조 매뉴얼Bash Cheatsheet셸 알아보기




. . .
Posted by 홍반장水 홍반장水
어떤 프로그래밍 언어를 선택해야 할 까요?
python,javascript,php,. . .
초보적인 언어만 좋아했구만.

Posted by 홍반장水 홍반장水
MS 비주얼 스튜디오 코드(Visual Studio Code) 아나콘다와 함께 제공

http://m.seminartoday.net/news/articleView.html?idxno=11961

 파이썬 사용자에게 유용한 편집 및 디버깅 경험을 제공하며, 아나콘다 사용자를 위한 특별 기능도 제공

아나콘다 5.1 다운 페이지 캡처(사진:아나콘다 웹, 편집:본지)

엔터프라이즈 프로그래머에서부터 데이터 과학자에 이르기까지 파이썬(Python)은 소프트웨어 개발을 위한 가장 대중적인 동적 언어 중 하나이다.

가장 인기 있는 파이썬 데이터 플랫폼인 아나콘다(Anaconda)는 전 세계 600 만 사용자에게 Windows, Mac 또는 Linux에서 능률적인 파이썬 환경을 제공하고 있다. 마이크로소프트는 15일(현지시각)부터 Anaconda 배포판에 MS의 무료 및 크로스 플랫폼 코드 편집기인 비주얼 스튜디오 코드(Visual Studio Code)가 포함돼 제공된다고 밝혔다.

비주얼 스튜디오 코드에 대한 마이크로 소프트 파이썬 확장 페이지 캡처

이제 비주얼 스튜디오 코드는 아나콘다와 동시에 설치될 수 있으며, 파이썬 사용자에게 유용한 편집 및 디버깅 경험을 제공하며, 아나콘다 사용자를 위한 특별 기능도 제공한다. 이것은 VS 코드 용 공식 파이썬 확장판 출시와 애저 머신러닝 스튜디오(Azure Machine Learning Studio) 및 SQL Server에서의 파이썬에 대한 강력한 지원 및 Azure Notebooks에 이은 MS가 파이썬 커뮤니티에 지속적으로 투자한 또 다른 예로 파이썬 개발자가 어디서나 어떤 플랫폼에서든 빌드 할 수 있도록 지원하는 것이다.

한편 비주얼 스튜디오 코드 용 Microsoft Python Extension은 GitHub 에서 적극적으로 개발되었으며 현재 VS Code Marketplace에서 가장 많이 다운로드 된 확장 프로그램으로, 현재 6 백만 회 이상 다운로드 되고 4.7 / 5.0 등급으로 제공되고 있다. (Anaconda 5.1 다운받기)

...


Posted by 홍반장水 홍반장水
2018 Developer Skills Report

https://research.hackerrank.com/developer-skills/2018/

파이썬은 교육용으로 많이 하지만, 실제 어떤 회사 어떤 업무를 하느냐에 따라 전혀 사용안 할 수도 있다.
지원하려는 회사 또는 업무에 맞는 언어를 익히는 것이 중요하다. 
웹개발을 하면서 여러 언어를 했지만 유행을 따라간다고 잘 된다고 볼 수 없었다. 
2000년이 오면 코볼이나 C는 안할줄 알았지만 아직도 엄청 여러 곳에서 사용되고 해당 개발자가 없어서 연봉이 상당하다. 
하고 싶은 일을 정하면 언어가 보인다. 언어를 할 줄 안아고 일이 생기는건 아니니까.  
영어 잘 한다고 외국계회사에 다니는건 아니니까. 




...

Posted by 홍반장水 홍반장水
php나 python은 이제 default.

Posted by 홍반장水 홍반장水
TAG php, python, ruby

오픈소스 개발자 축제, ‘파이콘 한국 2017’을 돌아보며

http://www.bloter.net/archives/291567



파이콘은 축제다

개발자 콘퍼런스에서 표면적으로 얻을 수 있는 건 물론 ‘개발에 대한 지식’이지만 지식은 구글 검색, 블로그, 스택오버플로우에서 충분히 얻을 수 있다. 컨퍼런스의 슬라이드와 동영상이 공개되니 ‘지식’은 꼭 참여하지 않더라도 얻을 수 있다. 컨퍼런스에서 얻을 수 있는 가장 큰 것은 나 외에도 파이썬과 개발을 좋아하고 즐겁게 사용하고 있는 사람들과 함께한다는 느낌을 받을 수 있다는 점 아닐까. 자신이 좋아하는 것들에 관해서 이야기하는 것을 통해 사람들과 소통할 수 있다는 점도 그렇다. 파이콘에서 이야기를 나눈 한 스피커 분은 한국에 파이썬 하는 사람이 이렇게 많은지 몰랐다며 즐거운 축제 분위기라 너무나 즐거운 행사였다고 했다. 그런 느낌을 많은 분이 받았으면 좋겠다. 다 같이 하는 느낌, 축제에서 즐겁게 이야기하는 느낌 말이다.


파이콘은 돈을 내고 세션을 듣고 집에 가는 행사가 아니다. 누구나 주제를 제안하고 만나서 이야기할 수 있는 열린 공간, 누구나 제안해서 5분짜리 이야기를 할 수 있는 라이트닝 토크는 물론 기념품 가방의 내용물을 채우는 작업도 참석자 모두가 할 수 있도록 모두가 준비해서 함께 만들어나가는 행사가 파이콘이다. 파이콘 한국은 준비하는 사람들이 100% 자발적인 노력을 통해 준비하기 때문에 완성도가 조금 부족한 부분이 있을지 몰라도 더 즐거운 행사가 되지 않았나 싶다.


위에 언급한 프로그램들처럼 파이콘 한국 준비위원회는 파이콘 한국을 더 의미 있는 행사로 만들기 위한 새로운 시도를 계속 하고 있다. 이런 새로운 시도가 파이콘 한국이 자발적인 노력만으로 계속될 수 있는 원동력이라고 생각한다. 새로운 것을 시도하지 않고 해마다 같은 행사를 같은 프로그램으로 한다면 준비하는 사람들이 준비하는 의미와 재미가 없어지지 않을까. 지금까지 한국에서 많은 좋은 커뮤니티 컨퍼런스가 생기고 또 없어지기도 했다. 그 컨퍼런스들은 왜 없어졌을까? 파이콘 한국은 어떻게 이렇게 빠르게 규모와 완성도 면에서 성장할 수 있었고 이런 추세는 언제까지 계속될 수 있을까? 명확한 답이 없는 이 질문을 끊임없이 해가면서 내년에도 파이콘 한국은 계속될 것이다.




...

Posted by 홍반장水 홍반장水
예제로 배우는 파이썬 - Selenium 사용하기 

1. Selenium 소개

Selenium은 웹 브라우져를 컨트롤하여 웹 UI 를 Automation 하는 도구 중의 하나이다. Selenium은 Selenium Server와 Selenium Client가 있는데, 로컬 컴퓨터의 웹 브라우져를 컨트롤하기 위해서는 Selenium Client 를 사용한다 (여기서는 Selenium 3 사용). Selenium Client는 WebDriver라는 공통 인터페이스(Common interface)와 각 브라우져 타입별(IE, Chrome, FireFox 등)로 하나씩 있는 Browser Driver로 구성되어 있다.

2. Selenium 설치

Selenium을 설치하기 위해서는 먼저 아래와 같이 pip 을 사용하여 Selenium Client 모듈을 설치한다.

pip install selenium

다음으로 사용할 브라우저별 Selenium 드라이버를 설치한다. 드라이버가 설치된 후, 해당 드라이버의 경로를 실행 PATH에 넣어 준다. 아래는 대표적인 브라우저별 설치 링크이다. 특별한 이유가 없다면 Selenium이 가장 잘 동작하는 Firefox를 사용하는 것이 좋다.

3. Selenium 사용법

Selenium을 사용하기 위해서는 먼저 selenium.webdriver 모듈을 import 한 후, webdriver.Firefox() 를 호출하여 브라우져를 실행시킨다. 만약 크롬을 사용할 경우 webdriver.Chrome()을 호출하고, Edge를 사용할 경우 webdriver.Edge()을 호출한다.

브라우져를 띄운 상태에서 특정 웹사이트로 이동하기 위해서는 아래와 같이 browser 객체의 get() 메서드를 사용한다.

1
2
3
4
5
6
from selenium import webdriver
 
browser = webdriver.Firefox()
# browser = webdriver.Chrome()
 
browser.get("http://python.org"

Selenium은 웹페이지 내의 특정 요소(들)을 찾는 많은 메서드들을 제공하고 있는데, 이들은 보통 한 요소를 리턴하는 find_element_*() 혹은 복수 요소를 리턴하는 find_elements_*() 메서드로 구분된다. 자주 사용되는 몇가지 검색 메서드를 예를 들면, 특정 태그 id 로 검색하는 find_element_by_id(), 특정 태그 name 속성으로 검색하는 find_element_by_name(), CSS 클래스명으로 검색하는 find_element_by_class_name(), CSS selector를 사용해 검색하는 find_element_by_css_selector() 등이 있는데, 예상되는 결과가 복수이면 find_element_* 대신 find_elements_* 를 사용한다.

검색 결과 리턴되는 객체는 FirefoxWebElement 와 같이 *WebElement 타입의 객체가 되는데, 리턴된 요소는 WebElement 타입 타입의 속성이나 메서드를 사용하여 데이타를 얻거나 특정 행위를 할 수 있다. 예를 들어, WebElement의 text는 요소 내의 문자열을 리턴하고, tag_name 은 해당 요소의 태크명 (예: a, span) 을 리턴하며, clear() 메서드를 호출하면 text 입력 영역을 초기화하고, click() 메서드를 호출하면 해당 요소를 클릭한다.

아래 예제는 python.org 웹사이트를 방문해서 상단 메인 메뉴 문자열을 출력하고, PyPI 메뉴를 클릭한 후 5초 후에 브라우저를 종료하는 예이다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
from selenium import webdriver
import time
 
browser = webdriver.Firefox()
browser.get("http://python.org")
 
menus = browser.find_elements_by_css_selector('#top ul.menu li')
 
pypi = None
for m in menus:
    if m.text == "PyPI":
        pypi = m
    print(m.text)
 
pypi.click()  # 클릭
 
time.sleep(5) # 5초 대기
browser.quit() # 브라우저 종료








...


Posted by 홍반장水 홍반장水

MOOC: Python (파이썬 강좌)

  • 게시자: TeamLab
  • 동영상 71개
  • 조회수 172,959회
  • 업데이트: 3일 전

K-MOOC 파이썬
가천대학교 TEAMLAB에서 운영하는 파이썬 입문용 강좌입니다.
키워드 - 파이썬 Python 입문 강의 강좌 MOOC


https://www.youtube.com/playlist?list=PLBHVuYlKEkUJvRVv9_je9j3BpHwGHSZHz





K-MOOC: 데이터 과학을 위한 파이썬 입문 강좌
http://www.kmooc.kr/courses/course-v1...

본 강의는 교육부의 "K-MOOC 강좌개발지원 사업"의 일환으로 가천대학교 ACE 사업단에 의해 제작되었습니다. 본 강의는 가천대학교 ACE 사업단의 데이터 과학 시리즈 MOOC의 일환으로 제작됩니다. 본 과정은 아래와 같이 구성됩니다.

강의 개요
강좌명: Gachon CS50 - 데이터 과학을 위한 파이썬 입문
강의자명: 가천대학교 산업경영공학과 최성철 교수 (sc82.choi@gachon.ac.kr, Director of TeamLab)
Facebook: Gachon CS50
강의자료: Docs.com
Email: teamlab.gachon@gmail.com

강의 구성
1주차: 프로그래밍과 파이썬
2주차: 메모리와 변수 (Memory & Variable)
3주차: 화면 입출력과 리스트 다루기 (Console & List Data Type)
4주차: 제어문과 반복문 (Condition & Loop)
5주차: 함수와 파이썬 코드 작성연습
6주차: 파이썬 문자열 다루기 (String)
7주차: 파이썬 자료 구조 (Data Structure)
8주차: 파이썬같은 코드 작성하기 (Pythonic Code)
9주차: 파이썬 객체 지향 프로그래밍 (Objective-Oriented Programming)
10주차: 모듈과 패키지 (Module & Packages)
11주차: 예외 처리 (Exception Handling)
12주차: 파일 다루기와 CSV (File Handling and Comma Separate Values)
13주차: Web Scraping
14주차: XML과 JSON (eXtensible Markup Languages and JSON)
15주차: What is NEXT?

참고자료
- 점프 투 파이썬, 박응용 지음 , 2014
- 헬로 파이썬 프로그래밍, 워렌 산데,카터 산데 지음 / 김승범, 박준표 옮김 , 2014
- 파이썬 바이블3, 이강성 지음, 2013
하용호, 스타트업 데이터를 어떻게 봐라봐야 할까 , 2014
강철, [PyConKR 2014] 30분만에 따라하는 동시성 스크래퍼 , 2014
정민영, [2D4] Python에서의 동시성_병렬성, 2014
최성철, 산업공학과를 위한 프로그래밍 입문 Part 1(w/파이썬) , 2014
최성철, 산업공학과를 위한 프로그래밍 입문 Part 2(w/파이썬) , 2014
최성철, 산업공학과를 위한 프로그래밍 입문 Code(w/파이썬) , 2014


...


Posted by 홍반장水 홍반장水

[Chatbot] Python과 Tensorflow를 활용한 AI Chatbot 개발 및 실무 적용 chatbot


도입 

AI Chatbot 소개 

Chatbot Ecosystem 

Closed vs Open Domain 

Rule Based vs AI 

Chat IF Flow and Story Slot 

AI기반의 학습을 위한 Data 구성 방법 

Data를 구하는 법 / Train을 위한 Word Representation 

Data의 구성 / Data Augmentation(Intent, NER) 

자연어처리 위한 AI 적용 방안 

Intent (Char-CNN) / QnA (Seq2Seq) 

Named Entity Recognition (Bi-LSTM CRF) / Ontology (Graph DB) 

Chatbot Service를 위한 Architecture 구성 

Chatbot Architecture 

NLP Architecture 

Web Service Architecture 

Bot builder / Chatbot API 

Test Codes for Chatbot 

실무에서 발생하는 문제와 해결 Tips 

Ensemble and voting / Trigger / Synonym(N-Gram) 

Tone Generator / Parallel processing / Response Speed 

마무리 


[설명 코드] 

Text Augmentation / Slot Bot / QA Bot / Graph DB / Response Generator 




...

Posted by 홍반장水 홍반장水
[python] ‘얼리또라이’의 데이터 공부 도전기

지난주 2천여명이 참석했던 파이썬 컨퍼런스 ‘파이콘’이 성황리에 끝났다.
 60여개의 다양한 발표가 진행된 가운데 눈에 띄는 발표가 하나 있었다. 
바로 ‘파이썬 입문자의 데이터 사이언스(Kaggle)’라는 발표다. 
발표 시작 10분 전부터 이미 좌석은 꽉찼다. 무대 앞과 뒤, 통로까지 참석자로 빽빽했다. 
발표자는 박미정 아이오 최고기술책임자(CTO). 
스타트업 혹은 개발자 행사에서는 흔하게 볼 수 없는 여성 CTO였다. 


발표가 끝나고 “데이터에 대한 관심도 많고, 입문자용 콘텐츠라 많은 분이 오신것 같다”라고 소감을 전하던 박미정 CTO로부터 스타트업에 유용한 몇가지 팁을 좀더 들어보았다. 

데이터 공부, 캐글로 시작해보세요 
캐글은 데이터 과학 및 머신러닝을 학습하는 플랫폼이자 온라인 경연 대회를 운영하는 곳이다. 
기업이나 특정 사용자가 데이터를 첨부해 문제를 내면 누구나 이 문제에 답을 제출 할 수 있다. 
참가자는 문제를 풀면서 데이터 분석을 경험하고 공부한다. 

 예를 들어, 미국 국토안보부는 캐글에 위험 감지 알고리즘을 향상할 수 있는 방안을 묻는 문제를 제출하면서 데이터 약 10기가바이트(DB)도 함께 제공했다. 현재까지 199팀이 여기에 참여했으며, 향후 가장 좋은 답안을 제출한 참가자가 상금을 받는다. 캐글은 지난 3월 구글에 인수됐다. “제 회사 차기 제품에선 고객한테 더 많은 서비스, 적합한 서비스를 추천해야 해요. 그럴려면 고객 환경 정보를 센서나 제품 등에서 수집해야 하거든요. 그런데 저는 통계나 데이터쪽으로 전공하지 않았어요. 당장 개발은 해야겠는데 뭐부터 해야 할지 막막하더군요. 그래서 일단 오프라인 학원 수업을 들었고, 그때 캐글을 처음 접했어요. 

처음에는 문제를 푸는 건지 알고 재밌었는데 시간이 지나니 이거를 우리 서비스에 어떻게 녹일지 고민할 수 있더라구요.” 박미정 개발자는 캐글에 공개된 자료 중에 타이타닉 생존자 예측 문제와 자전거 공유 시스템 예측 문제를 풀면서 데이터과학을 익혔다고 한다. 처음 데이터를 시작하는 사람이라면 이 두 문제를 살펴보면 좋다. 만약 어떤 알고리즘을 적용할지 고민된다면, 사이키트런 치트시트을 참고하자. 자세한 과정은 이번 발표자료에도 공개됐다. 
...


Posted by 홍반장水 홍반장水