[오늘의 실습 모음]

나이브베이즈 / 판별분석(LDA&QDA) / 로지스틱 회귀 / 서포트벡터머신 실습

https://github.com/thumb-chuu/BigData-Internship_statistics

 

GitHub - thumb-chuu/BigData-Internship_statistics

Contribute to thumb-chuu/BigData-Internship_statistics development by creating an account on GitHub.

github.com

 

[오늘의 실습 모음]

김해시_민원분석 실습(1.새올전처리, 2.새올민원통계_EDA, 3.Wordcloud_SNA)

https://github.com/thumb-chuu/BigData-Internship_Python

 

GitHub - thumb-chuu/BigData-Internship_Python

Contribute to thumb-chuu/BigData-Internship_Python development by creating an account on GitHub.

github.com

 

[오늘의 실습 모음]

텍스트마이닝

https://github.com/thumb-chuu/BigData-Internship_Python

 

GitHub - thumb-chuu/BigData-Internship_Python

Contribute to thumb-chuu/BigData-Internship_Python development by creating an account on GitHub.

github.com

 

남양주 점 레이어 생성
남양주 건물 전처리
남양주 건물1~건물3 시각화
남양주 데이터 전처리
남양주 전기차 입지선정 시각화
입지선정 시각화 실습 확대 모습

김해시 주요관광지점 2015년 내국인 입장객수 시각화
김해시 주요관광지점 2015년 외국인 입장객수 시각화
김해시 주요관광지점 연도별('13~'15) 입장객수 시각화
관광지 반경 1000m 내 유동인구
관광지별 관광객 연령분포(막대그래프)
관광지별 관광객 연령분포(트리맵 그래프)
버퍼 분석
일본인 유동인구
중국인 유동인구
태국인 유동인구

회귀분석(Regression Analysis)

: 하나 혹은 그 이상의 원인(독립변수)이 결과(종속변수)에 미치는 영향을 추정하여 식으로 표현할 수 있는 통계 기법

: 변수 사이의 인과관계를 분석하고 적합한 모델에 대해 관심 있는 변수를 예측하거나 추론하기 위한 방법

  • 단순선형회귀: 독립변수와 종속변수와의 관계가 선형(직선), 독립변수가 1개인 모델
  • 다중선형회귀(다변량회귀분석): 독립변수와 종속변수와의 관계가 선형(직선), 독립변수가 2개인 모델
  • 로지스틱회귀분석: 종속변수의 값이 이분형(명목변수)일 때
  • 비선형회귀분석: 독립변수와 종속변수의 관계가 선행이 아닐 때

 

[오늘의 실습 모음]

실습(1) 회귀분석

https://github.com/thumb-chuu/BigData-Internship_Python

 

GitHub - thumb-chuu/BigData-Internship_Python

Contribute to thumb-chuu/BigData-Internship_Python development by creating an account on GitHub.

github.com

 

기본 웹 크롤러

- Requests로 웹 페이지를 추출하고, lxml로 웹 페이지 스크래핑 및 sqlite3 DB에 데이터를 저장

 

상세 페이지 스크래핑

  • 개발자 도구로 CSSSelector 확인 - 타이틀, 가격, 목차
  • response를 매개변수로 scrape_detail_page()를 호출해서 책의 상세 정보를 추출
  • scrape_detail_page() 함수에서는 CSS Selector를 사용해 스크래핑
  • 제목과 가격은 root.cssselect() 함수로 추출한 리스트의 첫 번째 요소에서 문자열을 추출
  • 목차는 List Comprehension을 사용해 목차를 리스트로 추출

 

고급 웹 크롤러

  • 뉴스 목록 첫 페이지
  • 상세 페이지
  • 다음 페이지 이동

 

셀레늄(Selenium)

: 다양한 프로그래밍 언어로 웹 드라이버를 통해 다양한 브라우저 상에서 웹 자동화 테스트 혹은 웹 자동화 프로그램을 구현하기 위한 라이브러리

  • 지원 브라우저: Chrome, Firefox, Safari, Opera, Internet Explorer
  • 지원 언어: Python, Java, R, JavaScript, Ruby, PHP, C#, Objective-C 등

 

[오늘의 실습 모음]

Web Crawling_실습(1)~(5), (7)

https://github.com/thumb-chuu/BigData-Internship_WebCrawling

 

GitHub - thumb-chuu/BigData-Internship_WebCrawling

Contribute to thumb-chuu/BigData-Internship_WebCrawling development by creating an account on GitHub.

github.com

 

웹 페이지 추출

  • 웹 페이지를 추출 시 HTTP 헤더와 HTML의 meta 태그를 기반으로 인코딩 방식을 판별 필요
  • 표준 라이브러리 urllib.request 모듈을 사용하여 웹 페이지 추출
  • urllib.request에 포함돼 있는 urlopen() 함수에 URL을 지정하면 웹 페이지 추출 가능
  • HTTP 헤더를 변경 불가, Basic 인증을 사용을 위한 복잡한 처리 필요
  • HTTP 헤더 변경 및 Basic 인증을 위해 urllib 대신 Requests 모듈 사용 필요

 

HTTP 헤더에서 인코딩 방식 추출

  • HTTP 응답의 Content-Type 헤더를 참조하면 해당 페이지의 인코딩 방식을 확인 가능
  • 한국어가 포함된 페이지의 일반적인 Content-Type 헤더 - text/html, text/html ; charset=UTF-8, text/html ; charset=EUC-KR
  • UTF-8과 EUC-KR이 해당 페이지의 인코딩 방식
  • 인코딩이 명시돼 있지 않은 경우 UTF-8 인코딩으로 간주
  • HTTPMessage 객체의 get_content_charset() 메서드를 사용하여 인코딩 추출 가능

 

meta 태그에서 인코딩 방식 추출

  • 웹 서버 설정에 따라 HTTP 헤더의 Content-Type 인코딩과 실제 사용되고 있는 인코딩 형식 상이
  • 브라우저는 HTML 내부의 meta 태그 또는 응답 본문의 바이트열 확인을 통해 최종 인코딩 방식 결정 및 화면 출력
  • 디코딩 처리에서 UnicodeDecodeError 발생 시 이러한 방식으로 구현 가능
  • HTML meta에 명시되는 인코딩 형식 - <meta charset="utf-8">, <meta http-equiv="Content-Type" content="text/html ; charset=EUC-KR">

 

정규식(Regular expressions, Regex 또는 Regexp)

: 검색된 텍스트로부터 정보를 추출하는데 매우 유용하게 사용가능한 표현식

- 특정 검색 패턴(ASCII 또는 유니코드 문자의 시퀀스)에 대한 하나 이상의 일치 항목을 검색

 

RSS(Really Simple Syndication, Rich Site Summary)

: 뉴스나 블로그 등 업데이트가 빈번한 사이트에서 주로 사용하는 콘텐츠 표현 방식

  • 구독자들에게 업데이트된 정보를 용이하게 제공하기 위해 XML 기반으로 정보 표현 및 제공
  • RSS 서비스를 이용하면 업데이트된 정보를 찾기 위해 홈페이지를 일일이 방문하지 않아도 업데이트 될 때마다 빠르고 편리하게 확인 가능
  • 브라우저에 확장 프로그램으로 제공되기도 함

 

CSV(Comma-Seperated Values)

: 하나의 레코드를 한 라인에 저장하는 테스트 포맷 파일

  • 각 라인의 컬럼값은 쉼표(콤마) 등의 구분자를 사용
  • 데이터 내에 쉼표 등의 구분자 사용하는 문자가 포함되어 있다면 파싱 시 문제가 발생
  • 데이터 내에 쉼표 등의 문자가 포함되어 있는 경우 TSV(Tab-Seperated Values) 형식 사용 필요

 

JSON(JavaScript Object Notation)

: key-value 형식의 데이터 객체를 저장, 전달하기 위해 텍스트 형식의 개방형 표준 포맷

: 플랫폼 및 프로그래밍 언어 독립적 데이터 포맷

JSON 데이터 타입 - 문자열(string), 숫자(number), 객체(JSON object), 배열(array), 불리언(Boolean), null

 

SQLite3 DBMS

: 파일시스템 기반의 경량 관계형 DBMS

  • 경량 관계형 DBMS로 스마트폰 등의 embedded 환경에서 널리 사용
  • 파이썬에서는 SQLite3가 기본 모듈로 제공
  • 대용량 데이터 및 트랜잭션 처리 부적합
  • 경량 데이터 및 트랜잭션 처리, 교육용 목적 등으로 사용

 

파이썬 스크래핑 프로세스

  1. 웹페이지 크롤링 - fetch(url)
  2. 스크래핑 - scrape(html)
  3. 데이터 저장 - save(db_path, books)

 

HTML 스크래핑

lxml: C언어로 작성된 XML 처리와 관련된 라이브러리인 libxml2와 libxslt의 파이썬 바인딩

  • lxml.etree: ElementTree를 확장한 API를 가진 XML 파서
  • lxml.html: xml.etree를 기반으로 invalid HTML도 다룰 수 있게 해주는 HTML 파서
  • lxml.objectify: 트리를 객체 계층으로 다룰 수 있게 해주는 XML 파서
  • lxml.sax: SAX 형식의 XML 파서

Beautiful Soup: 간단하고 이해하기 쉬운 직관적인 API를 활용해 데이터 추출 가능

파서 매개변수 특징
표준 라이브러리의 html.parser 'html.parser' 추가 라이브러리 불필요
lxml의 HTML 파서 'lxml' 빠른 처리가 가능
Lxml의 XML 파서 'lxml-xml' 또는 'xml' XML에 대해 빠른 처리가 가능
html5lib 'html5lib' Html5lib(https://pypi.python.org/pypi/html5lib)을 사용해 HTML5의 사양에 맞게 파싱 가능

 

URL 구조

http :// example.com / main/index ? q=python # lead

스키마       어서리티              경로                쿼리       플래그먼트

URL 구성요소 설명
schema http 또는 https와 같은 프로토콜
authority 도메인 명 : 포트 번호
path 호스트 내부에서의 리소스 경로
query ? 뒤에 나오는 경로와는 다른 방법으로 리소스를 표현하는 방법
flagment # 뒤에 나오는 리소스 내부의 특정 부분

 

절대 URL과 상대 URL

  • 절대 URL: https:// 등의 스키마로 시작하는 URL
  • 상대 URL: 절대 URL을 기준으로 상대적인 경로를 잡는 URL - //로 시작, /로 시작, 그 외의 상대 경로 형식 사용

 

퍼머링크(Permalink)

: 하나의 콘텐츠에 대응되며, 시간이 흘러도 대응되는 콘텐츠가 변하지 않는 URL

  • 최근의 웹 사이트는 하나의 콘텐츠가 하나의 URL에 대응
  • "불변"이라는 영어 단어 "퍼머넌트(Permanent)"와 "링크(Link)"를 조합
  • 퍼머링크를 가진 웹 사이트는 구글 등의 검색 엔진의 크롤러가 콘텐츠 인식 용이
  • 페이스북과 트위터 등의 소셜 미디어에 콘텐츠를 공유할 때도 사용 가능하므로 많은 웹 사이트가 퍼머링크를 사용

 

[오늘의 실습 모음]

WebCrawling_실습(1)~(5)

https://github.com/thumb-chuu/BigData-Internship_WebCrawling

 

GitHub - thumb-chuu/BigData-Internship_WebCrawling

Contribute to thumb-chuu/BigData-Internship_WebCrawling development by creating an account on GitHub.

github.com

 

속성 질의와 공간 질의

  • 속성 질의 - 필드(field)와 레코드(record) 구조의 속성 테이블에서 산술 연산자 / 논리 연산자를 사용하여 조건을 작성하고 조건에 맞는 속성 데이터를 검색
  • 공간 질의 - 서로 다른 레이어에서 공간적 위치관계(교차, 포함, 인접, 중첩 등)를 연산 조건을 작성하고 조건에 맞는 공간 데이터를 검색

 

[오늘의 실습 모음]

QGIS 폴리곤 실습
QGIS 벡터데이터편집 실습
QGIS 데이터결합(속성) 실습
QGIS 데이터결합(공간) 실습
QGIS 디지털 지도 제작 실습
QGIS 래스터 데이터 편집 실습
QGIS 래스터데이터 기반 지형 분석 실습
QGIS 래스터데이터 분류 실습

 

GIS(Geographic Information Systems) : 지리 정보 시스템

 

GIS를 구성하는 7개 요소

  • 하드웨어
  • 소프트웨어
  • 자료
  • 방법
  • 사람
  • 네트워크(인터넷, 블루투스 등)
  • 애플리케이션

GIS 프로젝트 절차

  1. 문제의 정의
  2. 문제 해결 시나리오 구성
  3. 데이터베이스 구축
  4. 분석
  5. 가시화

 

데스크톱 GIS

ESRI: https://www.esri.com 

 

GIS Mapping Software, Location Intelligence & Spatial Analytics | Esri

Esri’s GIS mapping software is the most powerful mapping & spatial analytics technology available. Learn how businesses are using location intelligence to gain a competitive advantage.

www.esri.com

Autodesk: https://usa.autodesk.com

Hexagon: https://hexagon.com 

 

Hexagon AB - Empowering an autonomous future

Hexagon is a global leader in sensor, software and autonomous solutions.

hexagon.com

Precisely: https://www.pbinsight.com 

 

Precisely Support

Enrich your data, and enhance your applications, business processes and workflows with dozens of powerful location & identity APIs

support.precisely.com

ERDAS: https://www.erdas.com

 

 

오픈소스 GIS

  • C계열 오픈소스 GIS 라이브러리: GDAL/OGR, Proj4, Mapnik
  • C계열 오픈소스 GIS 소프트웨어(애플리케이션): GRASS, QGIS, PostGIS
  • Java계열 오픈소스 GIS 라이브러리: GeoTools
  • Java계열 오픈소스 GIS 소프트웨어(애플리케이션): GeoServer

GIS 데이터의 종류

  • 래스터(raster) 데이터: 실세계 공간을 일정한 크기의 격자 단위로 분할한 후 격자에 대응하는 실세계 객체의 정보를 격자의 속성값으로 입력하는 데이터
  • 벡터(vector) 데이터: 지도와 유사하게 점, 선, 면 등의 도형 요소를 이용하여 실세계 객체의 정보를 표현하는 데이터

 

래스터 데이터 특징

  • 셀(cell) 또는 그리드(grid)라고 불리는 격자 형태를 기본 단위로 사용하여 실세계를 규칙적으로 분할하고, 분할된 격자들의 상대적인 위치로 실세계 현상의 위치 정보를 표현하며, 각각의 격자에 값을 할당하여 속성 정보를 표현함
  • 격자에 할당되는 값의 유형은 크게 정수형, 실수형, 문자형으로 구분되며 표현하고자 하는 실세계 현상의 특성에 따라 값의 유형을 적절히 선택해야 함(아무 값도 할당하지 않으면 컴퓨터가 인식하지 못함)
  • 주어진 격자 내의 모든 셀에 데이터가 반드시 하나씩 존재해야 하는데, 이러한 이유로 컴퓨터가 해당 래스터 데이터를 저장하기 위해 불필요하게 과다한 메모리가 소모되는 경우도 있음
  • 실세계를 격자 단위로 분할한 후 수치 방식 또는 문자 방식의 코드를 격자에 할당하여 현상의 속성 정보를 표현하므로 실세계를 격자로 옮겨 표현하는 래스터 코딩 과정을 바르게 이해하는 것이 중요함

 

대표적인 래스터 데이터 예시

  • DEM(Digital Elevation Model): 디지털 지형 모델, 수치 표고 모델
  • 위성 영상 또는 항공(드론)사진

벡터 데이터 특징

  • 점, 선, 면의 도형 요소를 이용하여 실세계 객체를 표현하며, 래스터 코딩 과정을 거쳐야 하는 래스터 데이터 모델에 비해 더 사실적으로 객체를 표현할 수 있음
  • 점(Point)은 특정 지점에 객체가 존재한다는 것을 표현하기 위해 사용하며, 객체가 위치하는 좌표 정보(X,Y coordinates)를 가지며, 객체가 가지는 다른 특성들은 속성 테이블(데이터베이스 테이블)을 이용하여 속성 정보로 입력할 수 있음
  • 선(Line)은 하천, 도로, 전력선, 파이프라인 등 일차원 선형 객체를 표현하는데 유용하며, 벡터 데이터 모델에서는 작은 직선들을 연결하여 곡선을 표시하며, 이러한 작은 직선들을 line segment로 정의함
  • 면(Polygon)은 영역으로 표시되는 객체를 표현할 때 사용되며, 선과 동일하게 연결된 직선 line segment의 집합으로 볼 수 있으나, 하나의 node를 중심으로 연결된 line segment이 폐합되어 하나의 면을 형성한다는 점에서 차이가 있음

 

벡터 데이터 구조

  • Province.shp: 벡터 데이터의 기하학(도형) 정보를 저장
  • Province.shx: 벡터 데이터의 색인(index) 저장
  • Province.dbf: 벡터 데이터의 속성 정보를 저장

 

구분 래스터 데이터 모델 벡터 데이터 모델
장점 - 상대적으로 단순한 자료 구조
- 중첩 연산을 간단하게 구현할 수 있음
- 위성 영상 등 디지털 자료와의 호환
- 영상 처리, 모델링 등에 효율적
- 실세계의 연속적인 현상 표현에 효과적
- 객체의 위치, 형상을 보다 사실적으로 표현 가능(직관적 이해에 유리함)
- 속성 정보의 입력, 검색, 갱신이 용이
- 실세계의 이산적 현상 표현에 효과적
- 공간해상도에 좌우되지 않음
단점 - 정확한 위치 정보 파악이 어려움
- 해상도에 따라 객체의 형상 왜곡
- 객체가 존재하지 않는 격자에도 값을 할당해야 하므로 비효율적
- 복잡한 자료 구조
- 중첩 연산 등 공간 분석 기법의 구현이 어려움
- 공간 분석 함수의 프로그래밍이 다소 복잡함

GIS 데이터 입력 방법

  • 스캐닝
  • 디지타이징
  • 원격 탐사 - 탑재체, 센서, SRTM DEM & 위성 영상(원격 탐사 자료 예시)
  • GPS(최근엔 GNSS)

 

GIS 데이터의 구성 및 특징

  • 공간 요소(spatial components)와 속성 요소(non-spatial attributes)로 구분되며, 공간 요소는 실세계 현상들의 위치, 크기, 형태, 공간적 상관성 등을 나타내며, 속성 요소는 공간 요소를 제외한 나머지, 즉 위치와 관계없는 모든 정보 요소들을 나타냄
  • 공간 요소를 기준으로 크게 이산형 자료와 연속형 자료로 구분되며 일반적으로 이산형 자료를 GIS에 입력할 때는 벡터 데이터 모델이 적합하며, 연속형 자료를 GIS에 입력할 때는 래스터 데이터 모델이 적합함
  • 속성 요소를 기준으로 정성적 자료와 정량적 자료로 구분됨
  • 벡터 데이터 모델의 경우 속성 요소가 데이터베이스 테이블(속성 테이블)에 입력되는데, 정성적 자료는 문자형으로 입력되며, 정량적 자료는 수치형으로 입력되고, 래스터 데이터 모델에서도 자료의 특성에 따라 문자형 또는 수치형 속성값이 격자에 입력됨

 

GIS 데이터 제공 포털

국가공간정보포털오픈마켓: http://data.nsdi.go.kr/dataset 

 

데이터셋 - 오픈마켓

국토지리정보원 지형의 고도값을 수치로 저장함으로써 지형의 형상을 나타내는 지도 IMG 조회수: 41737

data.nsdi.go.kr

국토정보플랫폼: http://map.ngii.go.kr/ms/map/NlipMap.do?tabGb=total 

 

국토정보플랫폼 국토정보맵

선택 선택

map.ngii.go.kr

환경공간정보서비스: https://egis.me.go.kr/ 

EarthExplorer: https://earthexplorer.usgs.gov/ 

 

EarthExplorer

Large exports may take several hours to process during periods of high demand. Once processing has finished, an e-mail will be sent to the address associated with your ERS account. Real-time status updates can be found on the export status page. You may re

earthexplorer.usgs.gov

 

[오늘의 실습 모음]

Q-GIS 포인트 실습
Q-GIS 라인 실습

 

+ Recent posts