跳至主要内容

博文

目前显示的是 一月, 2019的博文

TensorFlow

Anaconda를 이용하여 Tensorflow 설치 Conda환경을 생성 #conda create -n 가상환경 이름 conda create -n tf python=3.6 anaconda 설치된 가상환경 실행 activate tf tf 가상환경에서 tensorflow 설치 pip install tensorflow      TensorFlow 개요 TensorFlow는 dataflow graph로 수학 계산과 데이터의 흐름을 나타낸다. TensorFlow는 dataflow graph를 구성 한 후 session을 생성하여 graph의 일부를 실행한다 Computation Graph TensorFlow 프로그램은 구성 단계 와 실행 단계 로 구성 구성(construction) 단계: 그래프를 조립 실행(execution) 단계: Session을 통해 그래프 연산을 실행 TensorFlow 기본적인 사용법 Argmax 설정한 axis에 따른 가장 큰 값을 가지는 요소의 index를 반환 axis = 0일때 x[0]와 x[1]의 각 요소들을 비교하여 큰 수의 index를 반환하고, axis = 1일때 x[0][]의 요소들 내 큰 수의 index와 x[1][]의 요소들 내 가장 큰 수의 index를 반환 Reshape tf.reshape(tensor, shape, name = None) tensor의 구조를 원하는 shape으로 변환 shape의 한 원소가 -1이라면, 전체 크기가 일정하게 유지되도록 해당 차원의 길이가 자동으로 계산된다. squeeze 차원 중 크기가 1인 차원을 스칼라값으로 바꿔 해당 차원을 제거한다. TensorBoard TensorBard는 TensorFlow에 기록된 로그를 그래프로 시각화시켜 보여주는 도구이다. TensorBoard 실행 tf.summary.FileWriter('log_dir', graph ...

R 데이터 타입

R에서의 데이터 타입 기본형은 Vector 이다. 자료형은 다음과 같다. Vector List Matrix Array DataFrame Vector 정의 다른 언어의 배열과 비슷하고, 한 가지의 스칼라 데이터타입의 데이터들을 저장할 수 있다.       (ex, 숫자만 저장하는 배열/문자열만 저장하는 배열/ a <- 1/ a <- "hello") 슬라이스(Slice)를 제공한다.        Slice란? 배열의 일부를 잘라내고 이를 다시 배열로 다루는 개념 생성 c()함수 안에 원하는 인자들을 나열 > x <- c(1, 2, 3) > x [1] 1 2 3  다음과  x <- c(1, 2, 3)부분에 괄호로 코드를 묶으면 실행된 결과값이 출력된다.        ※ 괄호로 코드를 묶으면 괄호안의 문장을 수행하고 그 결과 값을 화면에 출력 > ( x <- c(1, 2, 3) ) [1] 1 2 3 데이터 접근 인덱스로 데이터에 접근할 수 있고 인덱스는 0이 아닌 1부터 시작한다. 접근 문법 x[n]: vector x의 n번째 요소 x[-n]: vector x에서 n번째 요소를 제외한 나머지를 반환 > x <- c("a", "b", "c") > x[-1] [1] "b" "c" x[idx_vector]: idx_vector에 지정된 요소를 얻어옴. idx_vector는 색인을 표현하는 숫자 vector이다. > x <- c("a", "b", "c") > x[c(1, 2)] [1] "a" "b" x[start:end]: start부터 end까지의 값을 반환, 반환 값은 start위치의 값과...

R 함수

cut() cut  : 숫자들을 구간에 따라 분류해 factor로 변환한다. cut(x, breaks, right = F) # x는 숫자 vector # breaks는 구간을 저장한 vector 또는 구간의 수 # right는 breaks로 나뉘어진 구간에서 오른쪽 끝 값 사용에 대한 논리값 (T/F)으로, right = F의 경우 [a, b)로 됨 cut()에서 구간들은 (start, end] 형태로 정의되고, 0 < x <= end를 의미한다. 1~10사이의 수가 breaks에서 나눈 (0,5]와 (5, 10]구간에서 어느 곳에 속하는지 나타내는 factor를 반환한다.

기초 통계 함수

데이터의 기본적인 특징을 알려주는 기초 통계량  평균 분산 표준 편자 다섯 수 치 요약 최빈값 평균 (Mean) 평균을 계산한다. mean  : 평균을 계산한다. mean( x, trim=0, na.rm=FALSE, ...) # trim은 절사평균 을 사용할 때 (0, 0.5)로 지정 # na.rm는 평균 계산전 NA를 제거할지 여부 절사평균 (Trimmed Mean)이란?    데이터를 크기 순서로 나열한 뒤 값이 작은 쪽과 큰 쪽에서 얼마만큼의 데이터를 제거한 다음 평균을 계산 분산 (var) var  : 분산을 계산한다. var(x, na.rm=FALSE) > var(1:5) [1] 2.5 > var(mpg) [1] 36.3241028225806 표준 편차 (sd) sd:  표준 편차를 계산한다. sd(x, na.rm=FALSE) 다섯 수치 요약 최소값, 제1사분위수, 중앙값, 제3분위수, 최댓값으로 요약 fivenum  : 다섯 수치 요약을 구한다. fivenum(x, na.rm=TRUE) summary는 fivenum과 유사하지만 추가로 평균까지 계산한다. 최빈값(mode) 데이터에서 가장 자주 나타난 값을 말한다. table()을 사용해 각 데이터가 출현한 횟수를 센 분할표(Contigency Table)를 만든다. table  : 분할표를 작성한다. table( ... # 팩터로 해석할 수 있는 하나 이상의 객체 ) 반환 값은 table 클래스의 인스턴스이고 인자에 지정한 팩터들의 빈도수를 구한 결과를 저장 분할표(Contigency Table)란? 값의 빈도를 변수들의 값에 따라 나누어 그린 표

통계 분석 방법

통계 분석 방법 평균 차이 검정      ※  분석 대상변수 : 명목변수  → 연속변수 집단간 평균차이를 검정하는 방법 측정도구들: T-test, ANOVA, ANCOVA, MANOVA 집단 수 2개 이하: T-test(평균의 차이를 검증) 1개: one sample T-test 2개: independent samples T-test 시간: Paird samples T-test(특정 시간을 기준으로 전과 후의 차이를 검증) 3개 이상: ANOVA(분산을 검증) 3개: one way ANOVA 요인(2): two way ANOVA 시간(3): repeated measured ANOVA 시간+요인: two way repeated measured ANOVA Examples 음료수의 용량이 300ml가 맞는지 알고 싶다 → T-test 성별(남, 여)에 따른 성적 차이를 알고 싶다 → independent samples T-test 결혼한 사람과 안한 사람의 연봉 차이를 알 고 싶다 → independent samples T-test 같은 집단에 대해서 다이어트 전과 후의 차이를 알고 싶다 → Paird samples T-test 혈액형에 따른 키의 차이를 분석 → one way ANOVA 4개 매장의 매출액 또는 만족도의 차이를 알고 싶다 → one way ANOVA 1000도 / 1500도로 치킨을 튀겼을때의 맛 차이 → T-test 1000도의 오븐으로 구운 것과 1000도의 기름으로 튀긴 통닭의 맛 차이 → two way ANOVA 어학 연수 참여전과 참여후의 어학 점수 차이 → Paird samples T-test 참여전, 3개월, 6개월, 1년 후의 어학 점수 차이 → ...

Java Compiler와 JVM

java소스는 Java Compiler(javac)에 의해 바이트 코드로 변환됨 바이트 코드(.class파일)는 JVM에 의해 구동되고 기계어로 변환 된후 실행됨 기계어에서 → 실행까지의 과정을 프로그램에서 Link되었다고 함. Link되었다는 것은 프로그램이 구동되기 위해 필요한 메모리를 로딩하고, 실행될수 있도록 실행 준비를 하고, 실행 결정 및 실행 초기화하는 것. TPCSCHOOL.com에서 따온 그림 Java compiler JVM이 이해할 수 있는 자바 바이트 코드로 변환 자바 컴파일러는  javac.exe 라는 실행 파일로 설치 됨 Java bytecode JVM이 이해할 수 있는 언어로 변환된 자바 소스 코드 확장자는 .class JVM이 설치되어 있으면 운영체제에 별개로 실행 가능 Java Virtual Machine java bytecode를 실행시키는 가상의 machine JVM은 운영체제에 종속적이고, 각 운영체제에 알맞는 JVM을 설치해야 함 JVM의 구성 class loader interpreter JIT(Just-In_Time) Compiler Compiler GC(garbage collector) 자바는 동적으로 클래스를 읽어오고, 프로그램이 실행 중인 런타임에 모든 코드가 자바 가상머신과 연결된다. class loader: 동적으로 클래스를 로딩해준다. interpreter: 자바 컴파일러에 변환된 자바 바이트 코드를 읽고 해석, dynamic translation이라고도 불리며 프로그램의 실행 속도를 향상시키기 위해 개발됨 JIT Compiler: 바이트코드(컴파일된 자바코드)를 하드웨어의 기계어로 변환 Reference → 인프런의 Java 프로그램의 실행 구조               → [http://tcpschool.com/...

Python - inline nested for

year = ['2017', '2018'] date = [y + str(month).zfill(2) for y in year for month in range(1, 12)] print(date) >>> output ['201701', '201702', '201703', '201704', '201705', '201706', '201707', '201708', '201709', '201710', '201711', '201801', '201802', '201803', '201804', '201805', '201806', '201807', '201808', '201809', '201810', '201811'] Zfill() Methond str.zfill(length) 문자열의 길이가 인자값인 length가 될때까지 왼쪽으로부터 0으로 삽입하여 반환 s = '100' print(s.zfill(5)) s = '+82' print(s.zfill(5)) >>> output 00100 +0082