[번역] Learning from Simulated Data

data visualization과 data simulation의 흐름을 알아보기 위해 정리한 기사들!

결국 data visualization은 data를 다루는 모든 단계에 주요한 역할을 한다는 거구나! 시뮬레이션된 데이터들도 걔네들이 어떤 속성을 갖고 있는지 쉽게 볼 수 있어야 다음 단계를 논의할 수 있는 거니까. data simulation 은 모델이 학습할 데이터를 컴퓨터 엔진으로 생산해 내는 일이고, 이런 데이터 gathering에서 시작해서 전처리, 모델링, 결과 해석에 이르기 까지 데이터 사이언스의 각 모든 단계에서의 인사이트 도출에 data visualization이 중요하게 쓰인다는 이야기인 것 같다! 왠지 data visualization 이 더 재미있어 질 것 같다…

Learning from Simulated Data

DNN의 가장 어려운 점 중 하나는 학습에 막대한 양의 라벨링 데이터셋이 필요하다는 것이다. 몇몇 연구자들은 meta- learning 이나 few-shot learning 을 통해서 이 문제를 해결하고자 한다. 하지만 당분간은(for the time being) 물체 인식과 같은 작업을 성공적으로 수행하기 위해서는 막대한 양의 데이터셋은 필수적이다.

유니티처럼 비디오 게임들을 작동시키는 그래픽 엔진들은 라벨링 데이터들을 모으는 데 더 쉬운 편이다. 자율 주행과 같이 비디오 게임 환경에서 딥러닝 과제들을 해결할 수도 있다. 하지만 여전히 시뮬레이션 된 데이터와 실제 데이터 간에는 차이가 있을 것이며 DCNN은 스스로 이러한 차이를 극복하지 못할 것이다.

이러한 문제점들을 극복한 것이 Generative Adversarial Networks이다(GAN). gan을 통해 실제 이미지에 가까운 시뮬레이션 데이터를 만들 수 있기 때문에 오차를 크게 줄일 수 있다. 딥러닝 모델은 이렇게 막대한 양의 라벨링 데이터셋을 생산해 내는 그래픽 엔진을 활용하고 있다. 이번 기사에서는 애플에서 연구한 SimGAN에 대해 다룰 것이다. 이 알고리즘은 시선 응시 방향을 알기 위해 유니티 엔진에서 시뮬레이션 된 눈의 이미지를 실제 이미지와 비교했다.

SIMULATION VS. VISUALIZATION – WHAT’S THE DIFFERENCE?

시각화와 시뮬레이션의 차이가 무엇인지 질문을 많이 받습니다. 제조업 전문가들에게 이런 기술들이 인기가 많아지는 반면에 이 개념들에 대해서 약간의 혼동이 있는 거죠.

요약하자면, 우리는 시뮬레이션은 데이터를 생산하는 것이고 시각화는 데이터를 보여주는 것이라 말합니다. 삼차원 시각화 기술은 모든 요소들이 진짜인 것 처럼 ‘보이게’ 만들지만, 시뮬레이션 기술은 모든 요소들이 진짜인 것 처럼 ‘작동하게’ 만듭니다.

이번 기사에서는 시각화와 시뮬레이션 기술이 각각 어떤 것인지를 설명하고 그들이 제조업에서 어떻게 도움이 되며, 서로 어떻게 상호작용하는지를 설명하겠습니다.

시뮬레이션 기술은 데이터를 생산하게 해줍니다. 제조업의 관점에서 이런 데이터들은 생산라인에 있는 각 요소들의 실제 작동 방식을 복제하는데 도움을 줍니다. 이를 통해서 우리는 제조산업의 자원들(장비와 노동력 모두)의 각기 다른 속성과 특징, 행동들을 복제할 수 있습니다. 그들의 활용, 퍼포먼스, 그리고 전체적인 생산 효과에 대한 정확한 정보를 제공합니다.

시뮬레이션을 통해 얻은 데이터는 자원들 사이의 상관관계를 정립할 수 있게 해주고 개인과 전체의 생산량을 확인할 수 있게 해줍니다. 뿐만 아니라 가상 세계에서 여러 자원 조합과 인터랙션 시나리오를 테스트 해 볼 수 있게 해줍니다. 이를 통해 제조 전략이 계획한 대로 잘 작동할지에 대한 확신을 가질 수 있습니다.

시각화 기술은 시뮬레이션을 통해 얻은 데이터들을 시각적으로 표현할 수 있게 해줍니다. 뇌가 가공되지 않은 시뮬레이션 데이터들을 정리할 필요 없이 이 기술을 통해 복잡한 정보들을 친숙한 그림, 그래프, 사진, 또는 애니메이션으로 전환할 수 있습니다.

이해하기 쉬운 숫자 데이터를 제공함으로써 시각화는 모두가 기술적인 배경지식이 없는 사람에게도 효과적으로 데이터를 해석하고 분석할 수 있게 도웁니다. 결과적으로 커뮤니케이션이 활성화되고 워크플로우는 빨라집니다. 요약하자면, 시각화 기술은 시뮬레이션된 데이터를 활용가능하게 하는 것입니다.

시각요소의 3차원 제조 시뮬레이션과 시각화 소프트웨어는 두 기술을 모두 사용하여 기술적으로 정확하고 마케팅적으로 훌륭한 컨텐츠를 만드는 제 도움을 주는 완성된 솔루션을 제공합니다. 이러한 심플함과 높은 수준의 정확도, 그리고 바로 실행 가능한 결과물을 통해 제조업 전문가들은 그들의 팀과 고객, 그리고 여러 이해 관계자들에게 자신 있는 제조 솔루션을 제공할 수 있는 것입니다.

3차원 그래프 그리기

아래 두가지 포스팅에서 공통적으로 이야기 하는 것.

x,y,z 좌표를 이용해서 데이터를 표현 하는 방식은 적절하지 않다. 인터랙티브한 상황일 때만 사용하도록 하고, 그게 아니면 차원을 나눠서 데이터를 표현해라.

추가로 궁금해진 것들

1) 변수가 세개인 데이터를 표현하는 일이 어떤게 있을까?

2) 변수 세개를 차원 분리 하지 않고 한번에 삼차원 데이터를 표현하면서도 동시에 정확하게 나타낼 수 있는, 시점이 왜곡되지 않는 표현 방법은 무엇일까? 여기에 시각적 차원은 2차원으로 한정하고 감각적 차원(청각, 후각, 촉각 등)을 하나 더 쌓으면 되지 않을까?




포스트1. https://www.data-to-viz.com/caveat/3d.html

삼차원으로 표현한 그래프는 예쁘고 인기가 많지만, 대부분의 경우 그래프에 대한 정확하고 빠른 해석이 어려워진다. 3d 그래픽으로 구현한 그래프들의 좋고 나쁜 경우를 살펴보자.

3D 막대 그래프 – 쓰지마세요

막대 그래프는 엑셀로 쉽게 만들 수 있기도 하고, 널리 사용되고 있어서 아마 익숙할 것입니다. 하지만 일반적인 평면 막대 그래프와 비교해서 삼차원의 막대그래프는 몇가지 문제점이 있습니다.

img
  • 막대의 정확한 퍼센트를 확인하기가 어렵습니다.
  • 동일한 수치의 막대임에도 불구하고 앞/뒤의 위치에 따라 길이가 달라 보인다.
  • 가려지는 막대가 발생한다.

따라서 막대 그래프는 평면 상에서만 사용하도록 하자.

파이차트 – 쓰지 마세요

파이차트(원그래프)는 우리 dataviz 에서 가장 비추천하는 유형인데, 삼차원 파이차트는 그보다 더욱 더 비추천합니다. 삼차원으로 만들면 현실을 더 심하게 왜곡하여 해석이 어려워집니다. 평면상으로도 파이조각

img

끼리의 크기 비교가 어려운데, 삼차원으로 표현했을 때는 앞 뒤 위치에 따른 크기 변화까지 겹쳐서 파이 조각 비교가 한층 더 어려워집니다.

정적인 3d scatter plot (산점도) – 쓰지 마세요

3d 산점도 그래프는 삼차원 데이터 시각화에서 굉장히 흔한 형태입니다. 이러한 차트는 3개의 숫자 데이터를 인풋으로 받아들여 x, y, z 축에 각각 배치합니다. 삼차원 산점도 그래프가 과연 정확한지에 대해서는 많은 논의가 있었습니다. 삼차원 공간에 있는 특정 좌표의 x, y, z 값을 읽어 봅시다.

img

아마 어려울 거에요. 사람의 눈은 삼차원 공간 데이터를 인식하는 것을 잘 못합니다. 따라서 삼차원 삼전도 그래프로 데이터를 정확하게 표현하기에는 한계가 있습니다.

interactive 3d scatter plots – 가끔

제 생각에는 삼차원 산점도 그래프는 인터랙티브한 효과를 줄 수 있을 때만 사용하는 것이 좋습니다. 마우스를 이용해서 축의 방향을 바꾸거나, 자유자재로 회전 확대 축소할 수 있게 해야 합니다. 이러한 상호작용을 통해서 삼차원 공간을 잘 느낄 수 있습니다. 여전히 정확한 좌표를 읽는 것을 힘들지만, 효과적으로 데이터의 분포를 확인할 수도 있고 삼차원 공간상의 분포를 직관적으로 이해하는 데 도움이 됩니다.

surface plot – 좋아요

만약 모든 각 그리드 좌표에 숫자값을 갖고 있다면, surface plot 을 이용해서 데이터를 표현해 볼 수 있습니다. 이런 방식의 표현은 만약 그 숫자값이 높이(고도)를 나타낸다면 더욱 효과적입니다. 이런 경우 실제 삼차원 물체를 삼차원 효소로 실제로 만드는 거죠.


포스트2. https://www.gabrielaplucinska.com/blog/2017/8/7/3d-graphs

이 포스트에서는 삼차원 그래프를 다룰 것이다. 삼차원 그래프는 변수가 3개일 때 사용한다. 평면 데이터에 삼차원 효과가 용된 그래프는 본 적이 있을 것이다. 하지만 이건 별로 좋지 못한 방식이다. 아무런 정보도 담지 않은 채 차원을 추가하는 것은 아무 효과가 없을 뿐만 아니라 가독성에 안좋은 영향을 끼칠 수 있다. 따라서 이차원 데이터에 삼차원 효과를 사용하는 것은 지양해야 한다.

삼변수를 시각화 하는 것에는 다양한 방법이 있으나 가장 간단하게는 삼차원 큐빅 공간에서 X,Y,Z 좌표로 찍는 방법이 있다.

하지만 첫번째로, 이런 그래프에서 값을 읽는 것은 굉장히 힘들다. 단지 값들의 뭉치/군집만 확인할 수 있다. 삼차원 좌표 공간에 떠 있는 점끼리 잇거나, 평면들끼리 이으려고 하더라도 그것들의 올바른 값을 확인하기는 어렵다. 이것은 그래프가 시점에 따라 다르게 보이기 때문이다. 평행한 선이란 존재하지 않고 어떤 평면 상의 점을 향해 수렴하는 형태이기 때문이다.

두번째로 넘어가보자. 당신이 정확한 값에는 관심이 없고 비교만 한다고 가정하자. 그건 할 수 있는가? 공간 상에 떠 있는 두 좌표의 Z 값을 서로 비교할 수 있겠는가? Y 값은? 쉽지 않다. 평면 이미지로 부터 삼차원의 정보를 가져오는 것에 인간은 취약하다. 삼차원 데이터는 직접 만질 수 있거나 시선을 바꿔가면서 각도를 조정할 수 있을 때 가장 효과적이라는 것이 알려져 있다, 대표적으로는 입체 모형을 예로 들수 있다. 하지만 책(출판물)에 입체 모형을 첨부하는 것은 어렵다.. 대신에 독자들을 위해 삼차원 그래프를 렌더할 수 있는 확장 파일을 제공해 주면 좋을 것이다.

마지막으로, 삼차원 그래프를 만드는 것은 코딩 능력이 필요하다. 엑셀에서는 삼차원 그래프를 만들 수 없고 GRAPHPAD, TABLEAU도 마찬가지이다.

그렇다면 하나의 그래프에 3변수 데이터를 나타내기 위해선 어떻게 해야 할까?

방법1) 2개는 산점도, 1개는 크기

변수 2개는 산점도 그래프로 나타내고, 하나의 변수는 그래프 각 점의 크기 값을 변화하여 표시한다.  이 방법에서는 정확한 값을 확인하기 쉬울까? 점의 크기 값은 매우 클 때나 매우 작을 때는 구분할 수 있겠지만 중간 크기의 점들은 값을 구분하기 쉽지 않을 것이다. 단지 추정치만 제공할 뿐이다. 정확한 값을 알고자 한다면 점 위에 값을 표기하는 방법도 있으나 이 경우 그래프가 매우 지저분해질 수 있다.

방법2) 2개는 산점도, 1개는 색깔

변수 두개는 산점도 그래프로, 세번째 변수는 각 점의 색깔 진하기로 나타낸다. 훨씬 구분하기 쉽다. 이 경우도 정확한 값을 알긴 힘들지만 점들간의 비교는 크기 차이보다 훨씬 쉬워졌다.

[해보고 싶은 것] 데이터 청각화와 시각화!!!!!!

소리를 시각적으로 표현한 것이다!!

별거 아닐 수 있는데 내가 요즘 데이터 시각화에 엄청 꽂혀서 이 영상이 너무 인상깊었다. 며칠 전에 제로원에서 데이터 청각화 스터디를 신청했는데 매일 매일 제발 스터디에 참여할 수 있게 되기를 바라면서 일단 개인 공부(시각화 기초)를 해나가고 있었다. 그러던 와중에 저 영상을 보니까 떠오른 생각! 데이터의 시각적/청각적 표현을 간단한 차원 이동으로 쉽게 전환시킬 수 있게 하면 어떨까???? 그냥 데이터 자체에서 바로 청각화 하는 것이 아니라 -> 데이터를 한번 시각화 하고, 데이터로부터 만들어진 시각화된 이미지에서 청각화 해보는 것이다!! 과연 두 결과는 같을까?? 궁금하다!! 이 실험을 해보니 위해 배워야 할 것들을 정리해 봤다.

  • 1. 데이터 시각화 공부

    1) 데이터 종류에 따라서 적절한 시각화 방법 공부하기
    2) 다양한 시각화 기법/ 툴 익히기
    2) 지금까지 표현되지 않은 종류의 데이터의 시각화 방법 고민하기
  • 2. 데이터 청각화 공부

    1) 제로원에서 청각화 열심히 배우기!!
    (제발 됐으면 좋겠다 ㅠㅠ)
    2) 내가 직접 데이터 시각화 하는 연습 해보기!!
  • 3. 청각화의 시각화 / 시각화의 청각화

    1) 시각화한 데이터를 소리로 표현해보기
    2) 소리로 표현된 데이터를 시각적으로 표현해보기
    3) 시각 표현과 청각 표현을 자유롭게 넘나들 수 있는 표현 방식 연구해보기 ( 어쩌면 이게 미래에 생산될 고차원의 데이터를 효과적으로 표현할 수 있는 방법이 될 수 있지 않을까??? )

테슬라는 왜이렇게 성장하는걸까?

<백만마일 배터리>

1) 취지 : 대체 에너지 차량을 소비자들이 보다 저렴하게 구입할 수 있도록
2) 테슬라의 목표
   - 전기차를 내연기관차와 비슷한 가격으로 낮추고, 배터리 수명 및 저장용량은 끌어 올린다.
   - 전기차 제조사를 넘어 도쿄전력과 같은 에너지 공급사로서의 지위
3) 개발 파트너 : 중국 최대 배터리 제조사 CATL
4) 백만마일 배터리 : 160만km 이상 주행할 수 있는 배터리를 이르면 2020년 말 모델3에 탑재할 예정

<로보택시 / 사이버트럭>

우버와 리프트를 대체하는 자율주행 플랫폼 기업으로 변모하겠다
자율주행 전기차 플랫폼

<기가팩토리 -> 테라팩토리>

1) 기가팩토리?
-  위치 : 미국의 네바다 주 스파크스 외곽
-  제품 : 지붕에 태양광 패널로 부터 생산된 전기를 이용하여 배터리를 생산함(전기 모터, 배터리팩, 에너지 저장 제품)
2) 테라팩토리?
- 위치 :   중국 (테슬라의 첫 해외 생산 공장)
- 근거  
   (1) 값싼 노동력
   (2) 중국 전기차 시장 확대 (중국 정부의 내연기관 자동차 규제 강화로 인해)
     (+머스크는 중국 전기차에만 제공되던 10%의 세금 감면 혜택을 얻어냄)
- 생산량 :    일주일에 최소 1000대의 자동차를 생산할 수 있을 것으로 기대
- 규모 : 기가팩토리 셀의 30배 / 투자금 1000억 달러 소요
3) 다음 팩토리는?
- 위치 : 독일
- 근거 : 4차 산업혁명 기술로 생산 공정 자동화가 이루어져 인력 수요가 감소함, 값싼 인건비를 고집할 필요가 없으며 거대한 유럽 전기차 시장에 진출하여 수출 관세를 줄이는 것이 이득 (미-eu 분쟁으로 인해 유럽으로 수출하는 차량에 관세가 부과됨)

이슈

  • 과연 법이 따라줄까?

[논문리뷰] ProReveal: Progressive Visual Analytics with Safeguards

last updated. 2020.06.02

SNU HCI Lab : http://hcil.snu.ac.kr/home

1. Introduction

  • What is topic?
    • progressive visual analysis
  • definitions
    • partial results of visualization queries in the middle of computation
  • advantages
    • allow fast decisions with large-scale data
    • provide intermediate results in a reasonable time, which approximate the precise results
  • What are the challenges? : challenges of PVA
    • human factors
      • misinterpreting the uncertainty of intermediate knowledge
    • machine factors
      • (technical error) results from raw data / samples
  • What can be the solution? : “PVA-Guards”
    • how does it work
      • validate intermediate knowledge during or after exploration
      • ensure its correctness
      • hypothetical representation of intermediate knowledge that people garnered during progressive data exploration
      • continuous feedback on its validity
    • target scenario
      • where it is infeasible to obtain precise results during a single session due to a long computation time
  • What are main contributions of this paper?
    • define PVA-Guards with concrete examples
    • implement proof-of-concept PVA system “ProReveal”
    • report qualitative user study with PVA-Guards for progressive exploration

2. Related Work

  • PVA with human factors
    • acceptable time limit for intermediate results
      • general expectation
        • a few seconds up to 10s
      • variants
        • users’ situation
        • dataset sizes
        • analysis types
    • findings in HCI
      • Fisher et al.[5]
        • people are capable of employing incremental visualizations for faster decision making
      • Zgraggen et al. [6]
        • progressive visualizations outpace blocking ones
      • Zhao et al. [7]
        • developed multiple hypothesis testing controls to allow people to manage fals discoveries
      • Wu et al. [8]
        • importance of cumulatively rendering asynchronous results to imporve the perceived speed and usability of interactive visualizations
      • Moritz et al [9]
        • people trust early uncertain results in optimistic visualization
    • difference from past research
      • provide continuous feedback on the validity of intermediate knowledge
      • notify people when intermediate knowledge becomes invalide
      • formulate intermediate knowledge in a structured form(PVA-Guards) rather than plain text
      • opt for more explicit approach to test directly on a visualization
  • PVA with models, systems, and algorithms
    • Models
      • Fekete and Primet[10]
        • define progressive computation : computation that gives a sequence of partial results with a bounded time limit between two consecurive results
      • Schulz et al. [12]
        • partitioned data and visualization operators
      • Muhlbacher et al[13]
        • strategies for increasing user involvement
        • two axes: direction of information / entity of interest
    • Systems
      • Angelini et al[15] Micallef et al[16]
        • identify two major challenges in PVA
          • judging the uncertainty of partial results
          • handling fluctuating progressions
    • Domain specific PVA
      • Stolper et al[1]
        • progressive sequential pattern mining algorithm
      • Apache Spark[18] Jo et al[19]
        • DNN
      • Badam et al[22]
        • explore Twitter data
        • set of interface design guidelines that can help people understand progressive updates and intermediate results

3. Progressive Visual Analytics with Safe-Guards

  • summary
    • speed : fast data exploration – leaving validation intermediate knowledge to the system
    • correctness : validate correctness of intermediate knowledge
    • trace : trace back wrong decisions
  • definition of PVA-Guards
    • hypothetical representation of intermediate knowledge
  • compositions
    • variable
      • subject of intermediate knowledge that the Guard tests
      • examples
        • single value
          • the value of a cell of a heatmap
          • rank of a bar in a bar chart
        • distribution of values
    • operator
      • type of intermediate knowledge
      • operation a Guard performs
      • examples
        • comparison operators ( <, >, =)
        • ~ : follows
        • 비례 기호 : proportional to
    • operand
      • object of intermediate knowledge
      • type of operand depends on the type of operator
      • examples
        • comparison operators
          • constant
          • another variable
          • specific distribution whose parameters are known
        • ~ operators
          • normal distribution (정규분포)
        • existence operator -> operator which does not require any operand
          • unspecified operand
    • validity measure
      • how certain the intermediate knowledge is
      • types
  • Types of PVA by tasks in information visualization
    • List of tasks
      • retrieve value (결과값 찾기)
      • filter (필터링)
      • compute derived values (데이터 가공->결과 도출/계산(평균 등))
      • find extremum (극값 찾기)
      • sort (정렬)
      • determine range (범위 계산)
      • characterize distribution (분포 파악)
      • find anomalies (이상값 발견)
      • cluster (군집화)
      • correlate (관계 도출)
    • TYPE A. guards with statistical significance
      • meanings
        • statistical test for validity of the knowledge which gives a statistical significance
      • validity estimation
        • compare quantative values
        • greater than / equal / higher / lower
      • intermediate values by tasks
        1. retrieve value – identify an attribute of a single data item
        2. compute derived value – identify an attribute of a derived value of a set of data itmes (mean)
        3. find extremum – data item
        4. sort – rank of the data item
    • TYPE B. Guards with Vlidity Measures
      • meanings
        • interpretable statistics as a validity measure
      • validity measures
        • 정규분포 : specific distribution that data values are expected to follow (~)
        • kolmogorov-smirnov statistic : maximum difference between the cummulative probability functions of two distributions
        • 비례관계
      • intermediate values by tasks
        • characterize distribution – specific distribution
        • correlate –
    • TYPE C. Guards without Validity Measures
      • meanings
        • when quantifying the validity of intermediate knowledge is infeasible during the computation
      • validity measures
        • boolean : when full dataset is need for estimation
          • true/false
          • exist/empty
      • intermediate values by tasks
        1. determine range – acceptable range in a similar way to the retrieve value tasks
        2. filter – status “exist” / “empty”
    • TYPE D. Ill-defined Guards
      • meanings
        • when tasks require a choice of complex algorithms and parameters
        • high-level tasks
      • intermediate values by tasks
        • find anomalies
        • clusters
  • Design Considerations
    • Input : Explicit / Implicit / Middle point?   ==> Explicit Input!!
      • Explicit input
        • examples (programming language)
        • advantages (articulate knowledge most accurately)
        • disadvantages (cumbersome)  (interrupt exploration)
      • Implicit input
        • examples (eye tracking technology)
        • advantages (automatically identifies intermediate knowledge without user intervention)
        • disadvantages (error-prone)  (lead people to spend more time fixing the incorrectly captures Guards)
      • middle point
        • semantic interactions : user interactions associated with an intention
        • moving two document icons closer for presenting similarity between the documents
    • Validation : Online / Offline  ==> Online!!
      • Online – validate guards during progressive data exploration
        • advantages (greatest accuracy)
        • disadvantages (sacrifice computational resources that could be spend on exploring data)
      • Offline – validate guards after the exploration
        • advantages
          • offline computation can speed up the validation process by testing related Guards together
          • hybird approach is feasible to balance accuracy and efficiency
    • Violation (when wrong decisions made) : Passive / Active ==> Passive!
      • Passive Action
        • alert the analysts and wait for actions
        • similar example : common monitoring systems
        • advantages
          • analysts can prescribe active and complex operations
      • Active Action
        • suggest new values or parameters for the broken Guard
        • automatically re-run the analysis

4. ProReveal

  • What is ProReveal?
    • proof-of-concept system of PVA-Guards into progressive data exploration
    • initial platform for observing how people use and interact with Guards in progressive data exploration
    • allows people to leave a safeguard(PVA-Guard)
    • clear example of the concept of PVA-Guards in practice
  • Design Rationale
    • Simplicity with Essentials
      • Simple Usage
        • provide only 2 types of visualization (Fig1- a)
        • limit the types of visualization queries (Fig1- a)
      • Include Essential information
        • implement important requirements for PVA
          • uncertainty visualization
          • feedback on progress
          • execution control
          • prioritization
          • quality measures
    • Explicit Presentation of PVA-Guards
      • people can click on a visual element (Fig1- a)
      • people can select the type of Guard that they want to leave on the element (Fig1- b)
    • Respect intermediate results
      • permit to make Guards which respect the current intermediate results
      • recommend reasonable operand value
    • Keep PVA-Guards visible
      • keep Guards and their validity measures always visible on the interface (Fig1- d)
      • update validity measures of a Guard whenever its source visualization occur (Fig1- d)
  • Screenshot Image of ProReveal
Fig1. How ProReveal works
  • Progressive Visualization
    • 2 types of visualization
      • gradient plots : univariate visualization
        • role
          • confidence intervals of values
        • usage
          • single categorical field (C)
          • single quantitative field (Q)
          • pair of categorical / quantitative field (CQ)
      • heatmaps : bivariate visualization
        • role
          • uncertainty through the lightness and saturation
        • usage
          • two field of the same type (CC) (QQ)

데이터 전처리

<“숫자” 데이터를 이용하는 방법>

숫자형 데이터

  • 특화된 모델 : 선형모델 (릿지, 라쏘) 거리기반 모델?
  • 적당히 쓸 수 있는 모델 : tree 모델(random forest)
  • 선형모델을 위한 전처리 방법
    • scaling을 해줘야 한다. (칼럼 별로 단위가 다르기 때문에)
      • ax+by+cz
      • a, b, c 가중치를 설정해주는 과정이 필요함.
      • 기본적으로는 표준편차1, 평균0으로 일괄적으로 맞추는 전처리 방식을 이용한다. “standard scale”
      • .fit() 평균/분산을 구해주는 함수
      • .transform() 직접 바꿔주는 함수
      • >
      • from sklearn.preprocessing import standardscaler
      • ss=standardscalr()
      • train_base=ss.fit_transform(train_base)
      • test_base=ss.fit_transform(test.base)
  • alpha 값 설정( 옵션 설정)
    • 규제를 얼마나 할 것인가? 에 대한 내용
    • from sklearn.linear_model import ridge
    • ridge=ridge(alpha=10)
  • 학습시키기
    • from sklearn.linear_model import ridge
    • ridge=ridge(alpha=10)
    • ridge.fit(train_base,train[“SalePrice”])
    • result=ridge.predict(test_base)
    • result

카테고리형 데이터

  • tree 모델(random forest regressor)
    • 결측치 처리 : -1로 채운다.
      • 다른 데이터와는 결이 다르다는 느낌을 줄 수 있기 때문에 사용
      • 상황에 따라 중앙값/평균값으로 채우기도 한다.]
      • train_base.isnull().sum() 으로 결측치를 확인한다.
      • train_base-train_base.fillna(-1)

<“문자” 데이터를 이용하는 방법>

[] : 데이터에 바로 접근

() : 함수

  • 날짜형은 분리해서 의미있는 건 직접 사용하자
    • test[“datetime”]=pd.to_datetime(test[“datetime”])
    • test[“hour”]=test[“datetime”].dt.hour
    • train[“datetime”]=pd.to_datetime(train[“datetime”])
    • train[“year”]=train[“datetime”].dt.year
  • 문자형을 가변수로 만들지
    • pd.get_dummies()
      • 합치기
      • all_data=pd.concat([train,test])
      • 가변수로 바꾸기
      • all_data=pd.get_dummies(all_data)’
      • 분리하기
      • train=all_data(:len(train)]
      • test=all_data(len(train):]
      • 질문 : 왜 처음에 합쳐서 바꿔야 하지?
      • 합쳤을 때 왜 열 개수가 그렇게 느러나지? 플러스 되는 게 아니라 오히려 더 많아지는 거 같은데?
      • 행 개수도 최대값으로 맞춰져야 하는 거 아닌가? 왜 저렇게 되지?

캐글에서 데이터 시각화 활용하기

용도

- summarize and leave out important details 
- 학습을 방해하는 데이터 확인하고 제거
- 베이스라인을 이용한 결과 도출
- 본격적인 분석을 시작할 때
- 학습 결과를 비교할 때

래프를 그리는 법

    1. 데이터의 종류를 구분한다.
      • numerical / string
      • categorical / quantitative
    2. 데이터셋에 맞는 그래프를 그린다. (개별 변수)
      • quantitative features
        • histogram
          • 히스토그램의 모양을 통해 데이터 분포 타입을 확인한다.
            1. gaussian
            2. exponential
            3. normally distributed (정규 분포)
          • 일부 머신러닝 모델의 경우 특정 데이터 타입의 경우에만 작동하므로 (예 : 가우시안) 확인해야 한다.
        • density plots
          • smootheed version of histogram
          • don’t depend on the size of the bins
  • 필요한 라이브러리
    • import matplotlib.pyplot as plt
    • import seaborn as sns
  • 밑그림 깔기
    • plt.figure(figsize=(20,12))
  • 그래프 그리기
    • sns.boxplot(train[“hour”],train[“count”])

한꺼번에 여러 그래프 그리기

  • 밑그림 그리기
    • fig, axes=plt.subplots(nrows=2, ncols=2)
    • fig.set_size_inches(12, 10)
  • 그래프 그리기
    • sns.boxplot(data=train, y=”count”, x=”season”, ax=axes[0][1])

언제 어떤 그래프를 그리는 게 좋을까?

  1. 데이터의 종류
    • 문자형 : 카테고리화 되어 있는 것 (시간, 날짜, 년도, 계절, 주말, 주일)
    • 숫자형 : 연속적인 숫자 개념
  2. 구분
    • 숫자형-숫자형
    • 문자형-숫자형 (대부분의 경우) ==> boxplot
      1. hour (문자형) – count(숫자형)
    • 문자형-문자형
  • 출력 결과를 일렬로 한줄에 여러개씩 볼 수 없나?
  • 결측치 제거하니까 행이 26개 밖에 안남는데 이렇게 해도 괜찮은건지? 너무 많이 제거하는 것 같은데.. 결측치도 활용할 수 있는 방법은 없는지? 그리고 값들에 결측치 있는지도 꼭 확인해줘야 하는 단계인지? 항상 결측치도 확인을 해 줘야 하는 건가?(처음에 CSV 확인했을 때는 안보였잖아)
  • 이렇게 다 일일히 다 찍어봤는데 더 간단한 방법은 없는지? 각 변수와 SalePrice 와의 상관관계 그래프를 그릴 수 있는 또 다른 방법이 혹시 있는지?