본문 바로가기

프로그래밍

(18)
[JavaScript] ES6 자료형 정리 (2/2) null과 undefined null: 프로그래머에게 허용된 데이터 타입 undefined : 자바스크립트에서 사용 명시적으로 undefinde를 할당하지 않는 것을 권장함 객체 const obj = {}; // 빈 객체 obj.color = "yellow"; obj["not an identifier"]=3; const SIZE = Symbol(); // 심볼도 프로퍼티가 될 수 있다 obj[SIZE]=8; const obj2 ={ name="Sam"; classification: { // 객체도 프로퍼티가 될 수 있다 kingdom:'Anamalia', phylun:'Chordata', } } obj2.speak=function(){return "Meow!";}; // 객체..
[JavaScript] ES6 자료형 정리 (1/2) 변수와 상수 변수: 이름이 붙은 값, 값은 언제든지 바뀔 수 있다. let currentTempC=22; // 섭씨온도 선언+초기값 할당 currentTempC=22.5; // 값은 언제든지 변할 수 있다. let targetTempC; // let targetTempC=undefined; let targetTempC, room1 = "conrerence_room_a", room2="lobby"; let은 변수 선언에만 쓰이고, 각 변수는 한 번만 선언할 수 있다. let문 하나에서 변수 여러 개를 선언할 수 있다. 초기값을 할당하지 않는다면 암시적으로 특별한 값 undefined가 할당된다. 상수: ES6에서 새로 생긴 개념. 한번 할당한 값을 바꿀 수는 없다. const ROOM_TEMP_C = 21..
[Machine Learning] Django Rest Framework를 이용한 학습, 예측 웹페이지 구성 * Page 구성 (https://honeyteacs.tistory.com/6) 참조 1. Train page - 학습 매개변수 post하여(Jason) 학습 모델링 - 앞선 글에서와 같이(https://honeyteacs.tistory.com/30) CSV 데이터를 기반으로 array 형태로 진행 - 각 모델별 매개변수 설정(KNN, RFC, GBC) 2. Predict page - 앞서 만들어진 모델들을 기반으로 예측할 데이터(Jason --> DataFrame)를 post후 예측 결과 출력 - 예측에 쓰이는 데이터는 Jason 형태로 주고 받는 Django Rest Framework 특성상 DataFrame 형태로 예측에 사용되어야함(array x)
[Machine Learning] 다차원적 학습을 위한 데이터 전처리(Target 기반) 및 모델링, 모델링 과정 추출 * DataFrame을 통한 다차원 학습 실패(단 1:1 매칭 학습 및 예측은 가능) --> 일반 arrary 형태 사용 1. 일반 array형태를 통한 다차원적 학습(KNN 학습 모델 기반) 진행 및 예시를 통한 예측 진행 - Matplotlib를 통한 모델링 과정 분석 (하나의 매개 변수의 Target값들에 대한 시각화만 가능) 2. 일반 array형태를 통한 다차원적 학습(Decision Tree 학습 모델 기반) 진행 및 예시를 통한 예측 진행 - Graphviz를 통한 트리형태의 모델링 과정 추출 (export dot --> render png) - 단, Decision Tree의 경우에는 모델링 과정 추출이 가능하지만 Random Forest, Gradient Boosting의 경우에는 모델링..
Machine Learning 프로젝트 최종 시스템 구조도 * 프로젝트 주제 : 다양한 데이터들을 묶어 학습하여, 분류 모델을 만들며 그 과정을 추출하여 모델의 합당성을 평가한다. * (다중 클래스)분류용 선형 모델 (Ex.LinearSVC, Naivebayes)의 한계 1. 타겟(등급)설정 개수의 한계 2. 다양한 데이터를 묶어 분류 모델을 만드는 특성상 데이터의 시각화 및 분석이 불가능 --> KNN, DecisionTree(RFC, GBC) 모델 사용 - KNN: 기본 모델로서 좋고 설명하기 용이 - Random Forest 1)결정 트리 하나보다 거의 항상 좋은 성능을 냄 2)매우 안정적이며 데이터 스케일 조정(전처리)필요 없음 3)주요 매개 변수 : n_estimators(사용되는 트리의 개수.클수록 안정적이며 random_state값의 변화에 따른 변..
CSV파일 읽어 오기 CSV(Comma-Separated Values) : 각각의 데이터를 콤마(,)로 구분하는 파일 형식으로서, 메모장을 통하여 열어보면 콤마(,)로 데이터가 구분되어 있는 것을 확인할 수 있으며 엑셀 파일로도 사용이 가능하다. 1. csv모듈을 import 한다. 2. open()함수를 통하여 csv파일을 열어 f(파일 핸들러)에 저장한다. 3. f를 reader 함수에 넣어 csv reader객체인 data를 생성한다. 4. data를 원하는 형태대로 출력한다. *인코딩 타입이 유니코드 또는 UTF-8인 문서를 읽을 때 파일의 처음에 /ufeff가 추가되는데, 이는 인코딩 옵션을 utf-8-sig로 변경해 줌으로서 제거 가능하다. *UTF-8 : 어느 국가의 문자라도 표현할 수 있도록 만든 유니코드를 표..
[Machine Learning] 선형 모델(Linear model) 을 이용한 예측 모델 만들기 *K-최근접 이웃 알고리즘을 이용한 모델은 예측이 느리고 많은 특성을 처리하는 능력이 부족하다. 이러한 단점이 없는 모델이 바로 선형 모델(Linear model)이다. 선형 모델(Linear model) : 각 특성에 해당하는 기울기들을 곱한 후(특성 1개당 기울기 1개를 가지게 됨) 이를 모두 더하여 예측에 사용하게 된다. 특성이 하나일 경우 직선, 두 개일 경우에는 평면, 그 이상의 평우 초 평면 형태가 된다. 1. 선형 회귀(Linear Regression, 최소제곱법) : 예측과 훈련 세트에 있는 타깃 y 사이의 평균제곱오차를 최소화하는 파라미터 w, b를 찾는 알고리즘. (평균 제곱오차 : (예측값-타깃값)^2 / 샘플의 개수 ) 1) 데이터 셋이 단순하여 과소적합인 상태 2) 데이터 셋이 복..
[Machine Learning] k-NN(KNN, k-Nearest Neighbor, k-최근접 이웃), KNN-Regression(k-최근접 이웃 회귀) 알고리즘 - 여러개의 이웃 선택하기 전에 살펴본 이웃의 개수가 1일 경우에(n_neighbors = 1), 테스트 데이터가 어떤 클래스에 속할지에 대한 예측은 단순히 테스트 데이터에 가장 가까운 훈련 데이터의 출력을 기준으로 예측하는 것이었다.(https://honeyteacs.tistory.com/12?category=688750) 하지만 이웃의 개수가 1이 아닌 여러개일(n_neighbors = k) 경우에는 각 이웃이 속하는 클래스를 따져본 후, 가장 많은 이웃이 속하는 클래스를 선택하는 방식으로 클래스를 예측하게 된다. * 이웃의 수가 적을 수록 모델은 복잡해진다. - 훈련 데이터 예측 정확도 상승, 테스트 데이터 정확도 하락 - 극단적인 경우, 최근접 이웃의 수가 하나일 경우 훈련 데이터 예측률은 100%라 할 수 있지만 테스트 ..