이 게시물은 서울과학기술대학교 산업정보시스템전공의 2학년 전공과목 '데이터분석 입문'을 듣고 작성한 게시물 입니다.


wordcloud 워드클라우드 만드는 R 코드입니다.


setwd("c:/data_analysis")

sms_raw<-read.csv("sms_spam.csv",stringsAsFactors=FALSE)

str(sms_raw$type)

sms_raw$type<-factor(sms_raw$type)

install.packages("tm")

library(tm)

sms_corpus<-Corpus(VectorSource(sms_raw$text))

inspect(sms_corpus[1:5])

corpus_clean<-tm_map(sms_corpus,content_transformer(tolower))
corpus_clean<-tm_map(corpus_clean,removeNumbers)

corpus_clean<-tm_map(corpus_clean,removeWords,stopwords())
corpus_clean<-tm_map(corpus_clean,removePunctuation)

워드클라우드만들기

install.packages("wordcloud")

library(wordcloud)

worrdcloud(corpus_clean,min.freq=40,random.order=FALSE)

색깔입힌워드클라우드 만들기

library(RColorBrewer)
p<-brewer.pal(9,"Set1")
wordcloud(corpus_clean,nin.preq=40,random.order=FALSE, random.color=TRUE,colors=p)

 

 

이 게시물은 서울과학기술대학교 산업정보시스템전공의 2학년 전공과목 '데이터분석 입문'을 듣고 작성한 게시물 입니다.


- learning 프로세스 세 단계 파악하기

- install.package() -> library  사용법

- 슈퍼바이저, 언슈퍼바이저 비교점 알기

- R의 데이터 구조 알기

 : 가장 기본적인것은 vector 

 : combine (c) 사용해서 각각의 데이터구조들을 합침.

- 데이터 구조 실습 : 예 할 수 있어야함

- 중앙값이 훨씬 더 안정적인 값을 제공한다. (평균값보다)

- Range : 이상점에 영향 받음.

  IQR : 더 안정적인 값을 제공.

- 히스토그램 : 단일변수의 퍼짐정도 알아내기

- knn 에서 confusion matrix 중요합

- 최대최소 정규화 : 아웃라인을 다 1로 저장.

- Z 정규화 : 0을 평균으로 하기 때문에 최대는 + 최소는 -로 나옴

 

이 게시물은 서울과학기술대학교 산업정보시스템전공의 2학년 전공과목 '데이터분석 입문'을 듣고 작성한 게시물 입니다.


1. 팩터로 바꿔주기

> wbcd$diagnosis<-factor(wbcd$diagnosis,levels=c("B","M"), labels=c("Benign","Malignant"))

> table(wbcd$diagnosis)

   Benign Malignant
      357       212

2. normalize 함수 정의하기
> normalize<-function(x){
+ return ((x-min(x))/(max(x)-min(x)))
+ }

//함수정의


> normalize(c(1,2,3,4,5))
[1] 0.00 0.25 0.50 0.75 1.00
> normalize(c(10,20,30,40,50))
[1] 0.00 0.25 0.50 0.75 1.00
>


 

이 게시물은 서울과학기술대학교 산업정보시스템전공의 2학년 전공과목 '데이터분석 입문'을 듣고 작성한 게시물 입니다.


1. Range와 interqyartile range의 차이

이상치에 영향을 받는지 안받는지.

 

2. boxplot 그리기 실습

요약하기.

> summary(usedcars)
      year         model               price          mileage     
 Min.   :2000   Length:150         Min.   : 3800   Min.   :  4867 
 1st Qu.:2008   Class :character   1st Qu.:10995   1st Qu.: 27200 
 Median :2009   Mode  :character   Median :13592   Median : 36385 
 Mean   :2009                      Mean   :12962   Mean   : 44261 
 3rd Qu.:2010                      3rd Qu.:14904   3rd Qu.: 55125 
 Max.   :2012                      Max.   :21992   Max.   :151479 
    color           transmission     
 Length:150         Length:150       
 Class :character   Class :character 
 Mode  :character   Mode  :character 

특정 변수에 대한 요약

> summary(usedcars$price)

   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.
   3800   11000   13590   12960   14900   21990

두 변수 함께 요약하기

> summary(usedcars[c("price","mileage")])
     price          mileage     
 Min.   : 3800   Min.   :  4867 
 1st Qu.:10995   1st Qu.: 27200 
 Median :13592   Median : 36385 
 Mean   :12962   Mean   : 44261 
 3rd Qu.:14904   3rd Qu.: 55125 
 Max.   :21992   Max.   :151479 


- 히스토그램 그리기

> hist(usedcars$price,main="price",ylab="ddd")

 

 

- boxplot 그리기

> boxplot(usedcars$mileage,main="Boxplot hi",ylab="mile")

 

 

 

3. 범주형함수 요약하기

-table : 범주형데이터의 수치를 나타내 주는 표

- useds의 color을 새로운 model_table에 저장 후, 비율로 표시하기

> model_table<-table(usedcars$color)
> prop.table(model_table)

- 비율을 소수점 조정하기

> model_test<-prop.table(model_table)*100

> round(model_test,digits=1) : 소수점 첫번째 자리 까지.

 

4.산포도 그리기

> plot(x=usedcars$price,y=usedcars$mileage)
> setwd("c:/data_analysis")
> plot(x=usedcars$price,y=usedcars$mileage)
> plot(x=usedcars$price,y=usedcars$mileage,
+ main="Scatterplot of Price vs Mileage",
+ xlab="price",
+ ylab="mileage")

5.변수추가하기

예) 색깔에 대하여 보수적인지 아닌지 피팅시켜보기.

> usedcars$conservative<-usedcars$color %in% c("Black","Gray","Silver","White")    

//usedcars에 color중에서 black, gray, silver, white 가 있으면 usedcars$conservative에 저장하겠다.

> table(usedcars$conservative)

FALSE  TRUE
   51    99

//잘됬나 확인해보기

 

6. 크로스 테이블 만들기
> CrossTable(x=usedcars$model,y=usedcars$conservative)

 
   Cell Contents
|-------------------------|
|                       N |
| Chi-square contribution |
|           N / Row Total |
|           N / Col Total |
|         N / Table Total |
|-------------------------|

 
Total Observations in Table:  150

 
               | usedcars$conservative
usedcars$model |     FALSE |      TRUE | Row Total |
---------------|-----------|-----------|-----------|
            SE |        27 |        51 |        78 |
               |     0.009 |     0.004 |           |
               |     0.346 |     0.654 |     0.520 |
               |     0.529 |     0.515 |           |
               |     0.180 |     0.340 |           |
---------------|-----------|-----------|-----------|
           SEL |         7 |        16 |        23 |
               |     0.086 |     0.044 |           |
               |     0.304 |     0.696 |     0.153 |
               |     0.137 |     0.162 |           |
               |     0.047 |     0.107 |           |
---------------|-----------|-----------|-----------|
           SES |        17 |        32 |        49 |
               |     0.007 |     0.004 |           |
               |     0.347 |     0.653 |     0.327 |
               |     0.333 |     0.323 |           |
               |     0.113 |     0.213 |           |
---------------|-----------|-----------|-----------|
  Column Total |        51 |        99 |       150 |
               |     0.340 |     0.660 |           |
---------------|-----------|-----------|-----------

 

 

 

 

 

 

 

이 게시물은 서울과학기술대학교 산업정보시스템전공의 2학년 전공과목 '데이터분석 입문'을 듣고 작성한 게시물 입니다.


2. R 데이터이해와 탐구

 

1) 데이터 읽어오기

pjt_data<-read.csv("c:/data_analysis/data.csv",stringsAsFactors=FALSE)

* 파일을 쓰거나 저장하기 *

write.csv(pjt_data,file="c:/data_analysis/pjt_data2.csv")

 

2) 데이터 임포트

> write.csv(pjt_data,file="c:/data_analysis/pjt_data2.csv")

> setwd("c:/data_analysis")

> usedcars<-read.csv("usedcars.csv",stringsAsFactors=FALSE)

 

3) 수치 변수 살펴보기

*Summary() 함수 : 요약통계

*mean()함수 : 평균

*median()함수 : 중앙값

*ad : 분산 / var : 표준

*편차퍼짐에 대한 측정: 사분위수와 5개 수의 요약

최소: min() 함수

1사분위수 (Q1): quantile() 함수

중앙값: median() 함수

3사분위수 (Q3) : quantile() 함수

최대: max() 함수

*Range IQR*

Range: 최대와 최소의 차

IQR: Q1Q3의 차

 

이 게시물은 서울과학기술대학교 산업정보시스템전공의 2학년 전공과목 '데이터분석 입문'을 듣고 작성한 게시물 입니다.


1. R의 데이터 구조

1)Vector : 가장 기본적인 R의 데이터 구조

Element라고 부르는 ordered set value로 구성

모든 요소들이 같은 타입을 가지고 있어야 함

-> 이름, 온도, 감기유무

Q. temperature[2] -> 98.6 //2번째 나타내기

temperature[2:3] -> 98.6 101.4 //2번째~3번째 나타내기

temperature[-2] -> 98.1 101.4 //2번째 빼고 나타내기

 

2)Factor : 카테고리형 변수로 나타내는 데이터 구조

(명목형 변수)

ex) 여자:1 남자:2 일 경우 남자여자남자남자 = 2122

Factor가 생성되었을 때 level 추가 가능.

ex) 아래 표 참고.

 

3)List : Ordered set of value를 저장할 때 사용되는 데이터 구조

백터와 펙터들을 묶어서 하나의 리스트화 시키는 것

ex) 이름, 온도, 감기유무, 성별, 혈액형 따로 불러오지말고

하나로 다 불러오기 가능하다.

 

4)Data Frame : 가장 많이 사용됨. 엑셀과 비슷한 구조

스프레드시트나 데이터베이스의 저장과 유사한 형태로 표현됨

* $ : data frame의 특정 변수만 출력

* c() : combine 함수를 활용하여 특정 변수를 결합해 출력

* [a,b] : a번째 행과 b번째 열에 있는 값들을 출력

ex) [c(1.3),c(2,4)]

 

5) Matrixes and arrays : 데이터의 행과 열로 2차원 테이블을 표시하는 데이터 구조

 

 

 

이 게시물은 서울과학기술대학교 산업정보시스템전공의 2학년 전공과목 '데이터분석 입문'을 듣고 작성한 게시물 입니다.


 데이터 분석 입문(1) 3.13 

<!--[if !supportLists]-->1장.         <!--[endif]-->기계학습 소개

1) google books Ngram (https://books.google.com/ngrams)

- 관심 있는 Topic 몇 가지를 대상으로 각 Topic이 사용된 패턴을 분석

 

2) The origins of machine learning

 - 데이터 마이닝 : 대량의 데이터로부터 새로운 정보 또는 인사이트를 생성하기 위한 방법

 - 기계학습이 데이터마이닝 보다 훨씬 더 넓은 범위를 포괄함.

 - 기계학습 알고리즘은 기본적으로 데이터마이닝을 위한 전제조건이다. (반대는 성립하지 않음.)

 

3) How do machines learn?

  - A machine is said to learn if it is able to take experience and utilize it such that its performance improves up on similar experiences in the future.

*Basic learning process*

- 데이터입력 : 관찰, 기억장치를 활용하고 추론하기 위한 사실적 근거 제공

- 추상화 : 데이터를 더 넓은 표현 영역으로 확대하는 작업. 지식의 표현과 관련됨

  - 모델 : 데이터 사이의 구조화된 패턴을 설명하기 위한 명시적 기술

                   *수식 또는 방정식

                   *다이어그램

                   *논리구조

                     *군집

                훈련 : 데이터셋을 특정한 모델로 적합화 하는 과정. 모델에 데이터를 사용

                     ex) /->기숙사/자취->성적상/->결과: 지각하는지 / 안하는지

                     먼저 알려면, 레이블링이 되어 있어야 함. 각각의 학생의 지각유무를 알아야 함.

                     모델을 아무나 100명을 하는 것이 아니라 지각하는 학생을 모델로 세워야 함.

                     트레이닝셋 : 70%를 모델을 돌리는데 사용.

테스트 데이터 : 30%를 모델을 만드는데 사용.

동일한 데이터를 모델을 만드는 것 것과 검증하는 것에 모두 사용하지 않음.    

- 일반화 : 추상화 결과를 바탕으로 실제로 결과를 실행하고 해석하기 위한 작업

: 데이터로부터 모든 가능한 이론을 생각한 후, 이를 몇 가지 의미 있는 이론 또는 가설로 줄이는 작업과 관련 됨


4) 데이터 분석할 때

- 데이터의 종류가 가장 핵심적 어떤 데이터를 가지고 있느냐?

 

5) 데이터 유형

매우중요 ***척도***

- 명목척도 : /, 혈액형, 학년, 등 카테고리에 속하는 것.

- 서열척도 : 등급, 학점, 척도 문항 명목척도와 비슷한 것. 서열이 있음. 순위비교에 사용

- 비율척도 : 부피, 질량, 점수, , 몸무게, 성적 . 상대크기비교가 가능하다 사칙연산가능 

- 등간척도 : 절대온도, 동등한 등간만을 가지고 있는 척도. +,-만가능

모집단의 평균이 있는 경우 : 추정이 가능하므로 Parametric analysis

모집단의 평균이 없는 경우 : 추정이 불가능하므로 Non Parametric analysis 

6) Steps to apply machine learning to your data

 

7) Choosing a machine learning algorithm

- Supervised Learning : 100개를 가지고 70(모델만들기)/30(테스트) 나누어 모델링 하여 사용.

                             레이블링이 있는 데이터. 예측 가능한 데이터.

                             데이터에 대한 속성(집이어딘지. 성적은 어떤지 등)이 백터형태로 포함.                      백터에 대해 원하는 결과가 무엇인지 표시(지각유무)

                             Ex) 어떤 학생이 지각을 할 것 인가? 에 대한 대답.  

- Un Supervised Learning : 100개를 단순히 나누고 끝.

                             100명의 학생 전체를 그룹화 만 하는 것.

                             성능평가가 없음. 단순히 데이터의 구성을 알아내는 것이 문제임


- 빅데이터 분석은 두 가지로 나눌 수 있다. : Quary, Analytics

1.Quary : 과거나 현재를 살펴보는 것.

 가정상황) 장마시즌에 비가 많이 온다.

  - Reporting 시스템 : 과거에 '연도별, 원별로 비가 어떻게 왔었나? ' 등의 조건 지정하여 살펴 볼 수 있다.

 - OLAP 시스템 : 연도, 지역별로 7월 강수량 차이, 평균 강수량 및 최대강수량 살펴 봄.

         - Drill Across : 재난으로 인한 피해액

         - Drill Down : 연도별 추이

2. 통계분석 (Analytics) : 검증을 위해 사용하는것.

  - 미래를 예측하거나 이에 관해 다루는 것은 매우 제한적이다.

3. 데이터 마이닝 : CRM 분야에서 장기간 지속적으로 사용됨.

 가정상황) 장마철

   1. 분류 모델링 : 정의 및 과거 데이터를 통해 알고리즘으로 학습하여 최근 데이트를 적용.

-> 미래를예측.

 : 폭우가 10시간째 오고 있다. 내일 물난리가 발생할 도시는?

 

2. 시뮬레이션 : 현실 세계를 컴퓨터 상에서 모델링하여 미래의 다양한 상황을 예측함.

 : 폭우가 계속 오는데 강원도 댐의 수위가 한계에 가까워져서 수문을 개방하려 한다. 하류의 각 댐에서의 수위는 어떻게 될 것이며, 각 댐의 경우 몇 시에 한계에 도달할까?

 

 3. 최적화 기법 : 피해감소를 최대화, 비용과 기간에 대한 제약조건을 만족시키는 방식.

: 폭우로 인한 피해를 방지하기 위해 100조의 예산을 편성해서 해결하고자 한다. 단기간에 성과를 볼 수 있는 것, 장기적 투자가 필요한 것 이 있다. 어떻게 예산을 정해야 좋을까?

 

 

1. 빅데이터란 ?

- 초대용량의 데이터 양, 다양한 형태, 빠른 생성 속도를 의미.

- 비정형적인 텍스트와 이미지 등으로 이루어 짐.

2. 빅데이터 분석

- 데이터의 다양성, 생산속도에 따라 금융, 마케팅, 공공분야 등 다양한 분야에 활용 가능.

- R프로그래밍을 이용한 분석 가능.

빅데이터분석 - R프로그램

R프로그램을 기반으로 데이터, 빅 데이터 분석을 하기 위해서는 R프로그래밍이라는 언어를 먼저 학습해야 한다. 또한 R을 기반으로 하는 다양한 데이터마이팅, 텍스트마이닝 기술이 있다.

3. 빅데이터 분석기법

 분석 요소

방법 사례 

 마이닝

 Data 마이닝, 텍스트 마이닝, 오피니언 마이닝

 계량정보

 계량 서지학, 계량정보학, 과학계량화, 웹계량화

 네트워크

 지식 네트워크 분석, 언어 네트워크, 사회 네트워크

- 마이닝 : 어떤 대상에서 의미있는 정보를 찾아내는 것. 사전에 알려지지 않은, 유용한 정보를 탐색/예측하는 지식의 발견을 가능하게 한다. 대규모 DB에 저장된 자료와 같이 정형화된 데이터로부터 관계 데이터를 추출하는 것 이다.

- 계량정보 : 문헌정보학 영역에서 개발하여 적용한 방법.

- 네트워크 분석 : 네트워크 시각화, 중심성, 하위집단 등으로 구분.

 

 

  1. ZZUYONI 2015.01.25 00:40 신고

    잘 보고 갑니다!!

  2. onestar_ 2015.01.28 01:34 신고

    네 ㅎㅎㅎㅎㅎㅎㅎㅎㅎ

+ Recent posts