21.05.21
JSP
@JSP 오류 정리
1. 404Error : 서버에서 해당페이지를 찾을 수 없다는 오류
= 1_1. 보내려고 하는 서버페이지나 HTML페이지의 이름이 잘못됐을 때
1_2 . 만든 HTML/JSP페이지가 webapp폴더 아래에 있는지 확인
1_3 . 만든 HTML/JSP페이지가 같은 프로젝트 안에 있는지 확인
2. 500Error : Servlet을 먼저 실행하고 HTML / JSP를 실행하지 않았을 때
= 먼저 HTML/JSP(사용자에게 값을 입력받는 페이지) 실행
3. 페이지가 실행이 안되고 Tomcat경고창 나왔을 때
= 3_1 . Tomcat이 설치된 경로를 변경했을 때
3_2 . URL Mapping 값이 중복해서 지정이 됐을 때**
3_3 . Tomcat이 실행되는데 또 실행을 시켰을 때(Port번호변경)
4. Save Problems 오류 : 입력한 한글에 오류
= Select Char..3번째 버튼을 클릭하고 잘못된 한글을 찾아서 수정
5. JDBC연동할 때 많이나는 오류
= java.sql.SQLSyntaxErrorException(SQL문 확인할 것)
6. HTML / JSP에서 서버페이지를 호출 시 (submit버튼을 클릭했을 때) 무한로딩일 때 /
sql Developer에서 검색한 값과 Servlet에서 검색한 값이 다를 때
= sql Command line에서 로그인 후 commit 명령어 입력
7. HTML에서 수정한 태그가 실행하면 반영이 안될 때
= HTML파일을 새로고침 -> Server를 재시작 -> 컴퓨터 재부팅
@sendRedirect 실습 - QueryString 방식 Data전송
특별하다면 특별하다만... 무튼! 48일차에 진행했던 실습. "loginProgram.jsp" 파일에 그대로 진행 하였다.
- 우....선 인코딩 작업을 진행해준다. "URLEncoder.encode" 명령어로 값과 인코드할 타입 지정
- 기존에 sendRedirect 를 사용하던것에 더해 전송할 데이터를 적어준다.
=> 원레는 파일 이름( URL )만을 보냈지만 데이터 값을 더해 "URI"를 보내준것이라고 한다.
=> 그래서 보면 "QueryString" 형태로 Data가 전송됨을 볼 수 있다.
@Model 2 실습
=> Model.2 실습은 "Controller"에 해당하는 부분은 Servlet 파일로, "View"단에 속하는 부분은 변경X.
본래는 "Model"에 해당하는 < DAO/DTO >를 생성해야하나 Controller에서 다 수행해버렸다.
추가적으로 특별한 점은 없다. "JSP" 파일이 아닌 "Servlet"파일이 "Controller"인 점 만 다르고
코드 자체는 완전히 일치하다.
@쿠키와 세션의 필요성
위와 같은 특징이 있고, 쿠키에 대해 간단히 정리
%쿠키
=> 클라이언트(브라우저)에 저장되는 키와 값이 들어있는 작은 데이터 파일
=> ID저장, 로그인 상태 유지의 작업 수행
=> 일주일간 다시 보지 않기 / 장바구니 기능 등에 쓰일 수 있다.
단점
- 보안에 취약
- 작은 허용 용량
- 브라우저를 변경할 경우 다른 브라우저에서 저장한 쿠키 값을 사용할 수 없음
아래는 쿠키의 동작 방식에 대한 내용이다.
================================================
Machine Learning
@머신러닝 실습 - 타이타닉
<%> 명령어 종류
%head / tail 명령어
각각 상위 및 하위 5개의 데이터를 노출시킨다.
- tail( ) 명령어 처럼 특정 숫자를 입력해 출력할 데이터의 갯수도 정해줄 수 있다. ( 5개 이상도 상관X )
- 첫번째 or 마지막 순서부터 지정 갯수만큼 데이터 출력 ( 지정하지 않으면 기본으로 5개 )
% drop - axis / inplace
"axis"는 축 옵션으로, 1은 행방향, 0은 열방향을 뜻한다.
"inplace"는 drop( ) 명령어에 있어 Default가 False로, True를 주면 해당 결과값이 변수에 반영된다.
(False를 주면 출력했을 때 지워서만 나오지 Data값은 변하지 않는다.)
% info( )
info( ) 명령어는 해당 테이블의 칼럼 정보를 불러온다.
shape( ) 명령어로 해당 테이블의 행열 수를 호출해보면 알겠지만, 갯수가 부족하면 결측치가 존재한단 뜻 .
asd
asd
asd
@실습과정 ( 머신러닝의 과정 )
1. 문제 정의
=> 탑승객의 정보를 바탕으로 생존/사망자 예측
2. 데이터 수집
=> kaggle 사이트로부터 다운로드
3. 데이터 전처리
=> 불필요한 컬럼 삭제
=> 결측치 채우기(데이터 삭제, 기술통계, 상관계수를 통해 대체값)
=> 특성 공학
=> 새로운 컬럼 만들기
=> 범주형 데이터로 바꾸기 .
4. 탐색적 데이터 분석 (EDA)
=> train 데이터를 이용해 탐색 .
5. 모델 선택
6. 학습
7. 평가
아래의 실습 과정에서는 3번과 4번 조금..만 진행하였다.
@ [3]. 데이터 전처리 - 결측치 채우기 < fiilna / corr ( 상관관계 ) >
% fillna( )
결측치를 채우는 과정을 fillna( ) 를 이용하여 진행한다.
- value_counts( ) 를 이용하여 해당 칼럼의 각 데이터 값들의 갯수를 구한다.
- fillna( ) 명령어를 통해 결측치 값을 어떤 값으로 채울지 지정 , 해당 Data값을 inplace에 True를 주어 반영한다.
- 채운 다음 해당 칼럼의 각 데이터 값 갯수를 불러오면 "S" 값이 2개 늘어남을 볼 수 있다.
=> 총 데이터 값이 889개에서 891개로, 결측치가 정상적으로 채워짐을 알 수 있다 .
<shape: 해당 테이블의 행수, 열수를 불러온다.>
% corr( ) - 상관관계 ( Correlation )
corr( ) 이란 명령어를 통해 각 칼럼들이 다른 칼럼들과 갖고 있는 상관관계를 수치화하여 Table로 나타낸다.
각 값들에 대해서는 절대값이 높음이 높은 관계도를 갖는다 . 양수냐 음수냐는 그저 양/음 적 관계도가 높다 는 뜻이다.
때문에 만일 "Fare" 열의 결측치를 채우려 한다면 절댓값이 가장 높은 "Pclass" 열을 사용 한다.
pivot_table 명령어를 사용하여 위와 같은 표를 만든다. 각 옵션은 다음과 같다.
- "index"는 내가 집계함수("aggfunc")를 이용하여 연산할 Column을 기입한다.
- 본래는 모든 열에 대한 값을 반환하지만 특정 열에 대한 값만을 출력하기 위해 "values"를 사용한다.
- 집계함수 ( "aggfunc" )에는 위에서 평균을 사용했으나, 여러개를 쓸 수도 있다.
위에서 연관도가 높은 <Pclass>와 값을 구별하기 위한 <Sex> 열에 대한 평균값을 구하였다.
이번엔 "Fare"열이 결측치인 행을 호출한다.
해당 작업을 위해 isnull( ) 명령어를 사용하였으며, 해당 명령어를 사용하면 다음과 같이 boolean 형태로 반환한다.
보면 위에는 일단 다 False이긴 한데... 무슨 값이 null이라면 True를 반환한다. 이를 위의 사진 처럼
test[test['Fare'].isnull( )] 를 호출하면 True인 모든 행들을 반환한다.
그리고 <Pclass>는 3, 성별은 male이므로 상관관계 표에 따라 "12.661633" 값으로 fillna( ) 명령어를
이용하여 결측치를 채워준다. "inplace"옵션은 fillna 또한 호출한 순간만 보여주는 값이므로, 해당 값을 저장하기 위해 True를 준다 .
그리고 확인해보면 딱 1개 있었던 결측치 값이 채워짐을 볼 수 있다.
@ [4].탐색적 데이터 분석 - 시각화
% train의 Cabin & Pclass 시각화
a. x축 기준 - Cabin
- "sns"는 seaborn Library를 호출했다 .
- countplot 명령어를 통해 Bar 차트를 만들었으며. "data"는 train 테이블 , " x "축은 "Cabin" 으로 지정하였다.
- "hue" 옵션의 경우 예로 Matlab 언어에서 legend 나 x/y Label 등의 추가 작업 없이 Bar 구분이 가능하다.
b. y축 기준 - Pclass
y축 기준으로 만든 Chart 또한 특별한건 없다. 그저 x축에 값을 주지 않고 y에만 값을 주어 y축을 기준으로 값을 표출함.
- 위와 동일하게 "hue" 옵션은 Survived 를 주었다. ( 그냥 바를 구분해 내가 이름 지은게 Survived )
- " y "축에 Pclass 를 주고, " x "축은 자동으로 해당 값에 대한 counting을 표출 한다.
'국비교육기관 > 수업' 카테고리의 다른 글
51일차_머신러닝_인코딩 실습_Decsion Tree / JSP_Scope (0) | 2021.05.24 |
---|---|
50일차_머신러닝 / JSP_Session_Cookie_실습 (0) | 2021.05.22 |
48일차_머신러닝 / JSP 실습_RequestDispatcher (0) | 2021.05.20 |
47일차_JSP_sendRedirect_fieldset (0) | 2021.05.18 |
46일차_머신러닝 기초 / JSP_지시자 (0) | 2021.05.17 |
댓글