21.05.26
Machine Learning
@ Series - info / 칼럼 및 인덱스 확인
위와 같이 Series의 경우 는 Column을 확인하는 colums 나 index( ) , info( ) 와 같은 함수를 사용할 수 없다 .
하지만 아래와 같이 정의할 때 값을 칼럼으로 주면 결과를 확인할 수 있다.
좌측과 같이 data안의 값을 칼럼이 아닌 List 형태로 주게 되면 DF와 같이 정의 된다.
해당 값을 담고 칼럼, 인덱스, 정보를 확인한다.
@중요도 ( Importance )
- Model이름.feature_importances_ 는 해당 모델의 각 칼럼별 데이터들이 갖는 중요도 를 표기한다.
- 출력된 결과는 몇개인지 보이진 않지만 총 117개이다. 이는 Data를 One-hot Encoding한 결과와 같다.
아래는 Model에 넣은 Data를One-hot Encoding한 결과이다.
위 사진을 보면 "Importance"를 출력한 결과의 수와 같음을 볼 수 있다.
% 중요도 -DataFrame 생성
- 중요도의 값들은 모두 One-hot Encoding한 결과의 값들에 대해 표현한다.
- 때문에 각 값들이 어떤 컬럼의 어떤 데이터를 말하는지 보기 위해 정의한다.
- 데이터들이 어떤것에 대해 말하는지 보기 위해 "index"옵션에 데이터를 One-hot Encoding한 X_one_hot을 줌.
- "columns" 옵션은 DF의 칼럼들을 리스트 형태로 넣어준다.
% 중요도 Data Frame - 시각화
- 총 6개의 0이 아닌 중요도 값을 산출하였다. 해당 값들에 대한 시각화를 위해 "df2"라는 변수를 생성한다.
- 위에서 만든 중요도 값을 담은 변수 "tmf"를 .sort_values( ) 명령어로 정렬시킨다.
- 해당 명령어의 "by" 옵션은 정렬한 칼럼의 이름을 List 형태나 문자 형태로 받는다.
- "ascending" 옵션은 내가 오름차순인지 내림차순인지를 결정한다. ( ascend는 상승을 뜻. False니 내림차순 )
- 생성한 값을 출력하는데 나머지는 모두 0이므로 필요한 값 6개만 출력하기 위해 head( ) 명령어를 사용.
- 위에서 산출한 결과를 "df3"라는 변수에 담는다.
- "df3"를 시각화 하기 위해, 각 Data의 index 와 Index별 Values 를 .index / .values 로 불러낸다.<( )는 쓰지X>
- Data Frame을 시각화 하기 위한 Liabrary인 seaborn 과 matplotlib.pyplot 을 호출한다.
- <seaborn>은 <matplotlib>과 마찬가지로 시각화에 쓰이는 도구이지만 매트플랏 보다 쉽게 그래프를 그리고 스타일을 설정할 수 있다 는 장점이 있다.
- figure( ) 의 "figsize" 옵션을 통해 plot 크기를 변경한다.
- x축은 데이터의 인덱스 값 , y축은 데이터의 각 이름(values)로 설정한다.
- barplot( ) 명령어는 바 그래프를 만드는 <seaborn> 함수의 명령어이다.
- 결과적으로 출력된 그래프를 보면 색 별로 시각화 됨을 확인할 수 있다.
@앙상블 ( Ensemble )
=> 여러 개의 머신 러닝 모델을 연결하여 더 강력한 모델을 만드는 기법.
- 간단한 비유로 매우 똑똑한 한 사람 보다, 여러 사람이 모인 집단이 더 폭발적인 수행 능력을 보일 것.
- 같은 뜻으로 여러개의 모델을 집단으로 구성, 연결한 것이 하나보다 더 좋은 성능을 보일 것이다.
% Bagging
=> 같은 알고리즘으로 여러 개의 모델을 만들어서 투표를 통해 최종 예측 결과를 결정하는 방식
- "Ensemble"의 기법 중 하나인 Bagging 으로 54일차 수업에 더 이어서 진행할 것 이다.
- 복원 추출 : Sample 데이터에 만일 10개의 데이터 중 하나를 줘야하는데, 1번에 3을 주고 3이란 데이터를 다시 목록안에 있도록 하는것. 그니까 하나한테 줬다고 해서 9개의 목록중 주는게 아니라 다시 10개의 목록 중주는것
- 데이터를 샘플에 부여하고 나서 다시 원데이터를 복원 하고 다른 샘플들에 나눠준다.
- "투표"라는 작업은 데이터를 모두 부여하고 나서 이뤄진다.
================================================
JSP
=> 52일차에 이어 로그인 페이지 실습을 이어한다. / DAO를 생성, 기존의 코드 수정 작업
@DAO 생성 / 로그인 페이지 수정
%MemberDAO - select Method 생성 ( Login )
- 기존에 만든 Login 페이지( loginService.jsp )는 위의 빨간 부분을 제외 모두 삭제한다.
- 그리고 "MemberDAO" Class 파일을 생성, 로그인을 위한 "login" 메소드를 만든다.
- JDBC 동적 로딩 하는 부분은 conn( ) 이라는 메소드로 생성한다.
- JDBC를 실행한 뒤 "finally"에서 Connect과 PreparedStatement 닫아주는 부분 은 close( ) 메소드로 생성
- 기존에 "requst"로 받아왔던 email 및 pw 값은 select 메소드의 매개변수 로 받는다.
- 로그인에 필요한 email과 pw가 일치하는 회원정보의 값을 모두 받아 "MemberVo" 객체의 생성자에 담는다.
- 해당 생성자의 값을 메소드의 return 값으로 지정.
%loginService.jsp에 Select Method 적용
- "MemberVO" 객체 변수인 "vo"에 DAO 파일에서 생성한 "login" 메소드를 담는다.
- "request"를 통해 전달 받은 email 과 pw 값을 매개변수로서 집어 넣는것.
- 후에 받은 값을 "member"라는 이름의 세션으로 main페이지에 전송한다.
결국 해당 실습에서는 DAO 및 DTO를 활용하여 Model ( MVC ) 형태로 페이지를 제작 하는 것.
--> 전에 1차 프로젝트를 진행하면서 지겹게 진행했던 과정이다. 해당 실습을 통해 다시 복기.
@ Inserte & Delete & Update 수정
=> 위의 Login 페이지와 마찬가지로 기존에 사용했던 코드를 수정.
=> DAO에 필요한 DB 메소드를 구성, 기존의 코드를 수정하여 적용한다.
% Inserte
=> 코드 자체는 Select문과 크게 다르지 않기에 굳이 리뷰는 하지 않는다.
- Inserte 문 부분은 결국 Join, 회원가입 페이지이다.
- DAO 페이지에서 회원가입 창에서 요청에 의해 전달 받은 값을 매개변수로 갖는 Join 메소드를 생성한다.
- 해당 메소드를 통해 테이블에 행을 추가하고, RequestDispatcher 를 활용하여 회원가입 성공 페이지로 이동.
- 회원가입 성공 페이지에는 가입한 회원의 정보를 표시하며, 메인 페이지로 돌아가는 버튼 하나 만든다.
% 관리자 - Delete
=> Delete 페이지, 회원 삭제 페이지는 "관리자" 전용 페이지라 생각 .
=> "admin"이란 아이디를 갖는 회원은 기존의 회원이 보는 정보 수정이 아닌 회원 삭제 버튼을 표기토록 한다.
- 위와 같이 관리자냐 아니냐에 따라 다른 버튼을 표시하도록 설정한다.
- 해당 페이지는 Main 페이지의 부분이다. 관리자의 아이디인 "admin"과 일치하면 회원 삭제 , 아니면 수정.
- 관리자던 개인 회원이던 로그아웃 버튼은 로그인이 됐다면 표기 토록 한다.
ㅁㄴㅇ
ㄴㅁㅇ
ㅁㄴㅇ
ㅁㄴㅇ
ㅁㄴㅇ
asd
asd
asd
asd
'국비교육기관 > 수업' 카테고리의 다른 글
55일차 머신러닝 - 캐글 참가 / JSP - Interface 실습 (1) | 2021.05.28 |
---|---|
54일차 머신러닝 랜덤 포레스트 실습 / JSP 게시판페이지 (0) | 2021.05.27 |
52일차 머신러닝 - 교차검증, GridSearchCV / JSP - 로그인페이지 (0) | 2021.05.25 |
51일차_머신러닝_인코딩 실습_Decsion Tree / JSP_Scope (0) | 2021.05.24 |
50일차_머신러닝 / JSP_Session_Cookie_실습 (0) | 2021.05.22 |
댓글