## 폰트 설정 패키지 설치

install.packages("extrafont")

library(extrafont)


## 존재하는 모든 폰트 불러오기

font_import()


## 폰트 설정

theme_set(theme_gray(base_family='NanumGothic'))

## 혹은

theme_set(theme_gray(base_family='AppleMyungjo'))




참고 : http://www.mind-mining.co.kr/2016/05/using-r-mac.html

반응형
Posted by JoeSung
,

terminal을 열고


>> pip3 install --upgrade pip

업데이트 한번 실행


>> pip3 install jupyter

pip3로 주피터 설치. 파이썬3을 쓰기 때문에 pip3으로 시도


>> jupyter notebook

주피터 노트북 실행

반응형
Posted by JoeSung
,

##

## dplyr practice of 5 core verbs ( select, mutate, filter, arrange, summarise )

##


## 1 select - 그냥 SQL select 처럼 쓰면 되나보다 범위 설정도 되는듯 1:4 이런식

buying_no_shopping %>%

  select(ID, BIZ_UNIT)


custo %>%

  select(ID, GENDER, HOM_PST_NO)


custo %>% ## 컬럼 번호 범위로 가져오는 방법

  select(1:(ncol(custo)-1))


buying_shopping %>%

  select(ID, RCT_NO, PD_S_C)


## 2 mutate - 새로운 파생변수 만들 때 쓰는거 (변수 = 기존변수 * 조작)

glimpse(custo)

custo %>%

  mutate(GENDER_KR = ifelse(GENDER == 1, "남자", "여자") ) %>%

  select(1, 3:5,GENDER)


## 3 filter - where 같은거 &으로 연결지어서 사용 ,로도 된다.

custo %>%

  filter(GENDER == 1,

         HOM_PST_NO > 100

  ) %>%

  mutate(OVER =HOM_PST_NO/10) %>%

  group_by(ID, OVER) %>%

  summarise(n = n())


## 4 summarise - group_by 써서 aggregation function 쓸 때 summarise 활용하는 느낌이구나

custo %>%

  mutate(OVER =HOM_PST_NO/10) %>%

  group_by(AGE_PRD) %>%

  summarise( avg_cnt = sum(GENDER) / n() ) %>%

  mutate(rnk=rank(avg_cnt)) %>%

  arrange(desc(rnk))

## Aggregation function 쓸 때는 이거 쓰는거고 

## as 같이 column 이름 쓸 때 = 로 넣어준다.

## count avg sum 쓸 때 이거 쓰면 되겠다.


## 5 arrange - desc() 쓰면 디센딩 오더

custo %>%

  mutate(OVER =HOM_PST_NO/10) %>%

  group_by(AGE_PRD) %>%

  summarise( avg_cnt = sum(GENDER) / n() ) %>%

  mutate(rnk=rank(avg_cnt)) %>%

  arrange(desc(rnk))

반응형
Posted by JoeSung
,

- 퍼셉트론으로 신경망을 조직할 때, 각각의 퍼셉트론에서 다음 퍼셉트론으로 넘어갈 때 값의 역치를 어떻게 조절할지 결정해주는 것이 활성함수이다.


-시그모이드는 가장 대표적인 활성함수중 하나로 공식은 " sig(x) = 1 / 1 - exp(-x) " 이다. (exp는 자연상수, 파라미터는 지수)


-Gradient Descent는 모든 데이터를 다 학습하고 Loss(오차) function의 값을 다 보고 경사하강 및 갱신을 하는데, 이는 Cost 관점에서 보았을 때 너무 계산이 많이 요구된다. 이에 대한 한계를 극복하기 위해  SGD(Stochastic Gradient Descent)가 등장. 하나의 학습 데이터 마다 오차를 계산해서 신경망의 가중치를 바로 조절하는 방법이다.


-SGD(Stochastic Gradient Descent)를 할 때 이동하는 거리를 구하는 함수를 구하기 위해 시그모이드함수의 도함수가 필요하다. ( w = w - 도함수 )


-아래는 그 도함수 도출의 과정









반응형

'모조리 Data > 모조리 통계학' 카테고리의 다른 글

스크랩)몬테카를로 시뮬레이션  (0) 2018.03.25
모수와 비모수적 기법  (0) 2018.02.23
Normalize Data  (0) 2017.12.03
선형회귀의 기본 가정 / 편미분  (0) 2017.11.14
Posted by JoeSung
,


Simple is Better Than Complex


In [64]: import this


The Zen of Python, by Tim Peters


Beautiful is better than ugly.

Explicit is better than implicit.

Simple is better than complex.

Complex is better than complicated.

Flat is better than nested.

Sparse is better than dense.

Readability counts.

Special cases aren't special enough to break the rules.

Although practicality beats purity.

Errors should never pass silently.

Unless explicitly silenced.

In the face of ambiguity, refuse the temptation to guess.

There should be one-- and preferably only one --obvious way to do it.

Although that way may not be obvious at first unless you're Dutch.

Now is better than never.

Although never is often better than *right* now.

If the implementation is hard to explain, it's a bad idea.

If the implementation is easy to explain, it may be a good idea.

Namespaces are one honking great idea -- let's do more of those!




-------


파이썬 다시 시작

반응형
Posted by JoeSung
,




■ if문 문법


if [ 조건 ]; then

   

    실행문


elif [ 조건 ]; then


    실행문

else


    실행문

fi



■ if 조건문에 들어가는 비교 연산자


 - 문자열 비교

   1. "문자열1" = "문자열2" : 두 만자열이 같으면 "TRUE"

   2. "문자열1" != "문자열2" : 두 만자열이 같지 않으면 "TRUE"

   

 - 숫자 비교

   1. 숫자1 -eq 숫자2 : 두 숫자가 같으면 "TRUE"

   2. 숫자1 -ne 숫자2 : 두 숫자가 같지 않으면 "TRUE"

   3. 숫자1 -gt 숫자2 : 숫자1이 숫자2보다 크면 "TRUE"

   4. 숫자1 -lt 숫자2 : 숫자1이 숫자2보다 작으면 "TRUE"

   5. 숫자1 -le 숫자2 : 숫자1이 숫자2보다 작거나 같으면 "TRUE"

   6. !숫자1          : 숫자1이 거짓이면 "TRUE"

반응형

'모조리 Data > 리눅스' 카테고리의 다른 글

폴더 강제 삭제  (0) 2019.04.27
2. 리눅스(Linux) 초보를 위한 기본 명령어 정리  (0) 2017.11.27
1. 리눅스(Linux) 환경 세팅  (0) 2017.11.27
Posted by JoeSung
,




반응형
Posted by JoeSung
,

2. 리눅스(Linux) 초보를 위한 기본 명령어 정리



■ 0. ls


" 현재 위치한 디렉토리의 파일명을 확인 "


 $ ls



 ■1. cd 명령어


      " Change directory 명령어로 디렉토리를 이동하는 명령어 "


  예제 :

  $ pwd <-- 현재 내가 있는 디렉토리 확인

  $ ls  <-- 현재 디렉토리에 있는 폴더와 파일을 확인

  $ cd labs  <-- labs 디렉토리로 이동

  $ pwd (print working directory)



 ■ 2.2 touch 명령어


" 파일의 용량이 0인 파일을 생성하는 명령어 "


예 : $ touch a1.txt

     $ ls -1 a1.txt



 ■ 3. mkdir 명령어


" 디렉토리를 만드는 명령어 "


 예 : $ mkdir test2

      $ ls -dir test2

      $ rm -rf test2

      $ tm -r test9



 ■ 4. rm 명령어


  " 파일이나 디렉토리를 삭제하는 명령어 "


  * 주의 사항 !!


  리눅스나 유닉스는 휴지통이 없기 때문에 

  삭제할 때 특히 주의해야 한다.

  백업이 없으면 절대 복구가 불가능하다 !!


  예 :  $ touch bbb.txt

$ ls -1 bbb.txt  

$ rm bbb.txt


 


■ 5. rmdir 명령어


" 디렉토리를 삭제하는 명령어 "


  예 :  $ rmdir 디렉토리명

$ mkdir ddd

$ ls

$ rmdir ddd




 ■ 6. alias 명령어


 " 자주 수행하는 명령어들을 쉽게 사용할 수 있도록

   설정하는 명령어 "


 * 오라클 db에 접속


 $ sqlplus / as sysdba

 ex ; alias sql = 'sqlplus / as sysdba'



 ■ 7. cat 명령어


" 파일의 내용을 화면에 출력하는 명령어 "


 $ 파일명.txt

 $ cat emp.txt



 ■ 8. rediirection 명령어


"화면에 출력되는 결과를 파일로 저장하는 명령어"


  >> : 없으면 파일을 생성하고 있으면 기존 파일 뒤에 덧붙이겠다.

  >  : 파일을 생성하겠다. 있으면 그냥 덮어 쓰겠다.


 $ cat emp.txt >> emp50.txt



 ■ 9. more 명령어


" 1페이지가 넘는 문서의 내용을 화면에 출력할 때

  페이지 단위로 볼 수 있는 명령어 "


enter/space : 라인단위로 넘어가기 

f : 한페이지씩 넘어가기

b : 되돌아가기

h : 도움말

q : 종료하기


 $ more [파일명.확장자]



 ■ 10. head 명령어


" 문서의 처음 몇줄을 화면에 출력하는 명령어 "

 

예 : $ head [출력줄수] 파일명

     $ head -20 frozen.txt



■ 11. tail 명령어


"문서의 마지막 몇 줄을 화면에 출력하는 명령어"


 예 : $ tail [출력줄수] 파일명


      $ tail -10 frozen.txt


 * tail 명령어의 중요한 옵션 : -f 옵션


 문서에 끝에 추가되는 새로운 내용을 실시간으로

 확인할 수 있는 옵션


 * 현재 리눅스 시스템의 i/o 성능을 확인하시오 !


 $ sar 1 100


 ■ 12. wc 명령어


  " 파일안의 단어의 갯수 또는 라인수를 출력하는 명령어 "


 $ wc - l 파일명

 $ wc -l emp.txt


 옵션 : -l 라인수를 출력한다.

        -w 단어의 갯수를 출력한다.

        -c 문자수를 출력한다.



 ■ 13. grep 명령어


" 파일안에 포함된 특정 단어나 구문을 검색하는 명령어 "


  예 :   $ grep '찾고 싶은 단어' 파일명


    $ grep -i 'scott' emp.txt


  설명 : emp.txt 에 scott 단어가 포함된 라인을 보여달라 !


         -i : 대소문자를 구분하지 않겠다.         



■ 14. awk 명령어


  예 :  $ awk '패턴 {action}' 대상 파일명


$ awk '{prrint $1, $2}' emp.txt


  설명 : emp.txt 파일에서 첫번째 컬럼과 두번째 컬럼의 정보를 출력해라 !




 ■ 15. sort 명령어


  "data 를 특정 컬럼을 기준으로 정렬하는 명렁어"


 예제 : $ sort 옵션 파일명

        $ sort -k 6 emp.txt



 ■ 16. uniq 명령어


" 중복된 라인을 제거하는 명령어 "


 예 : $uniq [옵션] 파일명



 ■ 17. echo 명령어


" 출력하고자 하는 글자를 출력할 때 사용하는 명령어 "


 예 : $ echo '나는 나다'

      $ echo -n " 파일입력할 때 엔터를 멈춰주는 -n 입력자~ "

         read [변수명]



 ■ 18. diff 명령어


" 두 파일간의 차이점을 찾아서 알려주는 명령어 "


 예 :   $ diff 옵션 파일명1 파일명2

$ diff emp.txt emp7.txt



 ■ 19. comm 명령어


"두개의 파일의 차이를 비교하는 명령어"


 예 : $ comm [옵션]  파일명1  파일명2


 옵션 :  -1  : 첫번째 파일에 unique 한 라인을 출력을 안한다.


 -2  : 두번째 파일에 unique 한 라인을 출력을 안한다.


 -3  : both(둘다) file1 과 file2 의 교집합만 출력을 안한다.


 예 : $ comm -2 emp.txt emp7.txt 



 ■ 20. find 명령어

"검색하고자 하는 파일을 찾을 때 사용하는 명령어"

 예제 : $ find 디렉토리 -name  파일명  -print
                  ↑             ↑
            검색할 디렉토리    검색할 파일명

$ find /home/oracle -name '*.txt' -print


 ■ 21. tar 명령어


"파일을 압축하고 압축해제하는 명령어"


   예제 :  - 압축할 때


  $ tar cvf 압축파일명 압축파일 대상


  - 압축을 해제할 때


  $ tar xvf  압축파일명  압축해제할위치


   옵션 :


     -c : compress , 여러개의 파일을 하나로 만들어라

     -v : view , 압축되는 과정을 보여달라

     -f : file , 생성되는 파일명을 지정

     -x : extract , 묶여있는 파일을 풀어주어라

     -c : 압축이 풀릴 위치를 지정



■ 22. cp 명령어


" 파일을 다른 디렉토리로 복사해주는 명령어 "


 문법 : cp [파일위치] [옮길위치]


 예 : cp /home/oracle/test57/all.tar /home/oracle/test59



 ■ 23. ln 명령어


"바로가기 링크를 만드는 명령어"



 $ ln -s [링크를 걸 파일위치와 파일명] [바로가기이름]


 예 :  ln -s /u01/app/oracle/product/11.2.0/dbhome_1/sqlplus/admin/glogin.sql glogin.sql



 ■ 24. cp 명령어


" 파일을 복사하는 명령어 "


 예제 : $ cp [위치/원본파일명] [위치/복사할파일명]


$ cp emp.txt emp400.txt




 ■ 25. mv 명령어


" 파일의 이름을 바꾸거나 파일을 다른 디렉토리로 

  이동하는 명령어 "


 예제 : $ mv [기존파일명] [새로운파일명]


$ mv emp400.txt emp500.txt


$ mv emp.txt ./backup/



반응형

'모조리 Data > 리눅스' 카테고리의 다른 글

폴더 강제 삭제  (0) 2019.04.27
3. 리눅스 분기절 사용법 if  (0) 2017.12.06
1. 리눅스(Linux) 환경 세팅  (0) 2017.11.27
Posted by JoeSung
,

[index]

1 리눅스란?

2 oracle VM 가상머신과 xShell 을 통한 리눅스 환경 세팅


-------


1. 리눅스란?


 리눅스는 유닉스가 너무 고가여서 리눅스 오픈소스를 리누즈 토발즈 핀란드 학생이 1991년 11월에 개발한 OS입니다.


 리누즈 토발즈가 개발한 것은 리눅스의 커널 (자동차 엔진)을 개발하고 무료로 공개하고

 전세계의 많은 개발자들이 이 오픈소스를 가져다가 더 좋게 개선해서 다시 인터넷에 올리고 하는

 작업을 반복하다보니 리눅스 OS가 유닉스 보다 더 가볍고 안정적이게 되었다고 하네요.



2. 환경 세팅



 1. Oracle VM 설치


  https://www.virtualbox.org/wiki/Downloads


 권장 버전 : 5.0



 2. Oracle linux 이미지를 불러오는 작업

      이 블로깅에서는 이미 세팅된 이미지를 활용했습니다.

      11gWS2.ova ( 10GB )



 3.  oracle virtualbox 접속




실행




이미지 파일 불러오기

(주의사항 :  11gWS2.ova 파일을 가져오는 path에 한글이 있으면 에러가 뜨므로 주의. 그냥 D나 C 바로 아래에 두고 하는게 속 편함 )




시간이 좀 걸림




 3번의 설치/삭제 과정을 반복한 뒤에야 성공. 5.2.2 -> 5.1 ->5.0 버전을 시도해보았는데 5.2버전과 5.1 버전은 이미지 파일을 불러오는 과정에서 에러가 발생. 안될경우 1) 한글경로 제거하기 2) 버전을 차례로 다운그레이드하며 시행해보기를 시도할 수 있을 것 같음.



 실행에 성공하면 귀여운 리눅스 펭귄과 함께 아이디/비밀번호를 입력할 수 있다!




4. xShell 실행



 파일 -> 새로만들기



호스트에 접속할 아이피 주소 입력 (VM box에서 접속한 아이피)



세션에 추가 성공! 더블 클릭하여 실행



 접속 성공하면 뜨는 화면! 여기서 자유롭게 리눅스 명령어를 날리면 된다.





 xShell에서는 창>새 파일전송 으로 가면 더블 클릭하는 것만으로 접속 아이피에 파일을 전송할 수도 있다.




[다음 예정 포스팅]

2. 리눅스 기본 명령어 정리

반응형
Posted by JoeSung
,


[결과물]





[코드]


building.csv



install.packages(c("arules", "arulesViz", "visNetwork", "igraph" ))

library(arules) ## 연관관계 분석을 위한 aprior() 를 쓰기 위함

library(arulesViz) ## 시각화에 필요

library(visNetwork) ## 시각화 중 네트워크 표현에 필요

library(igraph) ## 시각화 결과물을 인터렉티브(움직이게) 해줌

 작업에 필요한 라이브러리를 설치하고 불러옵니다.


## 파일 로드

bui <- read.csv("building.csv", header = T)

head(bui, 3)


## NA 처리 

bui[is.na(bui)] <- 0

trans <- bui


#데이터 정제

roname <- bui[ , 1]

trans <- bui[, -1]

trans <- as.matrix(trans, "Transaction")

rownames(trans) <- roname


# 모델링

rules <- apriori(trans, parameter = list(supp = 0.001, conf = 0.6, target = "rules"))

rules


# 결과 출력

inspect(sort(rules))


 연관관계 모델링 및 결과 출력을 위한 코드입니다.


     lhs                                        rhs              support confidence lift    

[1]  {일반음식점}                            => {패밀리레스토랑} 0.40    1.0000000  2.222222

[2]  {패밀리레스토랑}                        => {일반음식점}     0.40    0.8888889  2.222222

[3]  {약국}                                  => {휴대폰매장}     0.25    1.0000000  3.333333

[4]  {휴대폰매장}                            => {약국}           0.25    0.8333333  3.333333

[5]  {약국}                                  => {병원}           0.25    1.0000000  3.333333

[6]  {병원}                                  => {약국}           0.25    0.8333333  3.333333

[7]  {휴대폰매장}                            => {병원}           0.25    0.8333333  2.777778

[8]  {병원}                                  => {휴대폰매장}     0.25    0.8333333  2.777778

[9]  {편의점}                                => {일반음식점}     0.25    1.0000000  2.500000

[10] {일반음식점}                            => {편의점}         0.25    0.6250000  2.500000

* 야매 개념 소개

  - Support : 지지도, 두 사건이 동시에 일어날 확률

  - Confidence : 신뢰도, 한 사건이 일어났을 때 다른 사건에 영향을 미치는 정도

  - Lift : 리프트, 상관관계와 유사한 개념.



## 시각화

subrules2 <- head(sort(rules, by="lift"), 20) ## lift 기준으로 상위 20개만을 시각화


ig <- plot( subrules2, method="graph", control=list(type="items") )


# saveAsGraph seems to render bad DOT for this case

tf <- tempfile( )

saveAsGraph( subrules2, file = tf, format = "dot" )

# clean up temp file if desired

#unlink(tf)







# 인터렉티브 코드

ig_df <- get.data.frame( ig, what = "both" )

visNetwork(

  nodes = data.frame(

    id = ig_df$vertices$name

    ,value = ig_df$vertices$support # could change to lift or confidence

    ,title = ifelse(ig_df$vertices$label == "",ig_df$vertices$name, ig_df$vertices$label)

    ,ig_df$vertices

  )

  , edges = ig_df$edges

) %>%

  visEdges(  ig_df$edges ) %>%

  visOptions( highlightNearest = T )





## 참고(Reference)

R visualization of arules with arulesViz + igraph + visNetwork


반응형
Posted by JoeSung
,