본문 바로가기
R 오류 해결법 <In scan(file = file, what = what, sep = sep, quote = quote, dec = dec, : EOF within quoted string> 이러한 오류가 발생하게 되면 UTF-8 인코딩 된 csv 파일이 제대로 읽히지 않게 된다. Sys.setlocale(category = "LC_CTYPE", locale = "C") # 강제로 언어를 삭제 이 코드를 사용하면 오류가 해결된다. 대신 파일을 불러온 후 Sys.setlocale("LC_ALL","Korean") # 언어를 한글로 재설정해준다. 2021. 12. 17.
[R] 랜덤 포리스트 1. 랜덤 포리스트 랜덤 포리스트: 여러 개의 결정 트리를 결합하여 성능을 향상하는 앙상블 기법 (랜덤 포리스트는 포리스트에 나무가 많다는 데 착안하여 생긴 이름이다. 여러 개의 결정 트리를 만들 때 난수를 사용하기 때문에 랜덤이라는 단어가 붙어 있다.) 요소 분류기: 앙상블 기법에서의 각각의 분류기 약한 분류기: 성능이 그리 뛰어나지 않은 분류기 2. 랜덤 포리스트의 원리 - 앙상블 기법은 요소 분류기로 약한 분류기를 주로 사용한다. - 때로는 일부러 기본 성능을 약간 넘는 아주 낮은 성능을 지닌 분류기를 만들기도 한다. - 이때 요소 분류기가 서로 독립적일수록 결합 성능이 좋아지기 때문에 요소 분류기를 만들 때 난수를 사용하여 독립성을 확보한다. - 결정 트리에서는 루트 노드의 질문을 만들 때 여러 .. 2021. 12. 2.
[R] 결정 트리의 해석 1. summary 함수로 결정 트리 해석하기 - summary 함수를 사용하면 결정 트리의 내용을 보다 상세하게 알 수 있다. - variable importance 행은 설명 변수의 중요성을 순서대로 보여준다. - P(node)는 이 노드에 도달할 확률 2. 결정 트리 시각화하기 (rpart.plot 라이브러리 사용) library(rpart.plot) rpart.plot(r, type = 4) 3. 결정 트리의 장점과 단점 ① 장점 - 결정 트리의 예측 결과는 해석이 가능하다. - 예측 과정이 매우 빠르다. - 여러 개의 결정 트리를 결합하면 높은 성능의 예측기를 만들 수 있다. - 결측값을 가진 샘플을 처리할 수 있다. - 범주형 변수를 그대로 사용할 수 있다. ② 단점: 성능이 낮다. -> 높은.. 2021. 12. 1.
[R] 결정 트리 함수의 사용 (rpart) 1. iris 데이터에 rpart 적용하기 설명 변수: 꽃받침의 길이와 너비, 꽃잎의 길이와 너비 반응 변수: {setosa, versicolor, virginica}의 3개 부류를 가진 Species r = rpart(Species~., data = iris) 첫 번째 매개변수: '반응 변수 ~ 설명 변수로 정의되는 수식' 형태 iris의 경우 4개의 설명 변수를 모두 사용하므로 수식을 Species~. 형식으로 지정 두 번째 매개변수: iris 데이터를 사용한다는 사실을 알려준다. 참고) 반응 변수는 범주형이여야한다. 만일 범주형이 아니라면 범주형으로 변환한 다음에 사용하거나 rpart(···.,method='class')옵션을 설정해야 한다. 그렇지 않으면 rpart가 분류가 아닌 회귀로 작동한다... 2021. 11. 30.
[R] 결정 트리의 원리 1. 결정 트리 스무고개와 비슷한 원리로 분류 문제를 해결한다. '예'와 '아니요'에 해당하는 2개의 가지를 뻗는다. 2. 용어 정리 노드: 문제에 해당하는 곳 루트 노드: 맨 꼭대기에 있는 노드 리프 노드: 자식이 없는 노드 에지: 부모 노드와 자식 노드를 연결하는 선 트리: 위의 사진과 같은 전체 구조 이진 트리: 모든 노드가 2개 이하의 자식 노드만 가진 것 깊이: 가장 깊은 레벨의 트리의 깊이 -> 트리는 계층 구조를 표현하는데, 루트 노드는 레벨 0, 그 자식 노드는 레벨 1, 그 자식 노드는 레벨 2에 해당한다. 위의 사진의 이진 트리 깊이는 3이다. 2021. 11. 30.
[R] 회귀와 분류 1. 회귀와 분류 회귀: 반응 변수가 연속인 경우의 모델링 문제 분류: 반응 변수가 연속이 아닌 몇 가지 부류 값을 가지는 문제 2. 분류 문제를 푸는 기법 - 결정트리 - 랜덤 포리스트 - K-NN - 신경망 - 딥러닝 3. 이진 분류 반응 변수가 가질 수 있는 값을 부류 레이블이라고 하는데 보통 줄여서 부류 또는 레이블이라 부른다. 그 중 부류의 개수가 2개인 분류 문제를 이진 분류라고 한다. 2021. 11. 30.
[R] ggplot2 라이브러리를 이용한 데이터 시각화 1. aes 함수 - 플롯의 가로축과 세로축에 대응될 데이터의 항목을 지정한다. - 데이터 프레임 형식의 데이터를 시각화할 때 데이터 프레임의 이름을 반복 사용하지 않아도 되므로 명령어가 간결하다. - aes 내부에서 col이나 size 옵션을 활용해 플롯의 색상이나 마커의 크기 등을 속성에 대응시킬 수 있다. - 막대그래프를 그리고자 할 때는 geom_histogram 혹은 geom_bar 함수의 내부에 stat="identity" (데이터 프레임의 값을 그대로 사용해서 그래프를 그리라는 뜻)을 선택 인자로 전달해야 한다. 2. geom_point 함수 - 데이터를 점으로 표시하는 플롯을 그린다. - 내부에서 alpha 옵션을 통해 점의 불투명도(투명 0.0 ~ 불투명 1.0)를 설정할 수 있다. - .. 2021. 10. 22.
[R] 베이스 R을 이용한 데이터 시각화 1. plot 함수 - 가장 일반적인 그래프 시각화 함수로 직선, 점 등 여러 가지 형태의 플롯이 가능하다. - type="p"는 점 플롯. main="cars"는 그래프의 제목 plot(cars, type="p", main="cars") - 입력 데이터가 데이터 프레임 형식인 경우, 가로축과 세로축의 이름은 별도로 지정하지 않아도 자동으로 지정된다. - type="l"은 선을 사용한 플롯 plot(cars, type="l", main="cars") - type="b"는 점과 선을 모두 사용한 플롯 plot(cars, type="b", main="cars") - type="h"는 히스토그램과 같은 막대그래프 plot(cars, type="h", main="cars") 2. pie, barplot 함수 -.. 2021. 10. 22.
[R] 데이터 시각화의 기본 기능_데이터를 여러 관점에서 보게 함 시각화의 주요 특징 1. 비교/ 순위 - 실습) 1952년 아시아 대륙의 인구 분포에서 각 국가의 순위 gapminder %>% filter(year==1952&continent=="Asia")%>% ggplot(aes(reorder(country, pop), pop))+ geom_bar(stat="identity")+coord_flip() - reorder(x축 변수, 정렬기준변수) - stat="identity": 막대그래프 그릴 때 넣어야하는 옵션 - coord_flip(): 가로축과 세로축의 위치 변경 - 위의 그래프는 중국과 인도의 인구가 다른 국가에 비해 월등히 많아 싱가포르와 같은 인구가 적은 국가는 확인이 거의 불가. - 이런 경우 로그 스케일의 축을 사용해서 큰 값은 작게, 작은 값은 상.. 2021. 10. 22.