21.06.10
Machine Learning
@분류 평가 지표
@Confusion Matrix(혼돈or오차 행렬) - 이진분류
=> 단적인 예로 True는 암환자, False는 정상인. 이라 구분지어 보면 좀 더 이해하기 쉬울 것.
- TP : 암이라고 예측했는데, 실제로 암. -> 예측값과 실젯값이 동일하다 -> True Positive
- FN: 정상이라 예측, 실제로는 암. -> 예측값과 실제값이 불일치 -> False Negative
- FP: 암이라 예측, 실제로는 정상 -> 예측값, 실제값 불일치 -> False Positive
- TN: 예측과 실제값이 일치 -> 둘 다 정상 -> True Negative
- 전체적으로 좀 이해가 어려운데, 그냥 간단히 내가 True라 예상했으면 Positive, False라 예상하면 Negative가 붙는다. 예측값과 실제값이 다르면 False, 같으면 True가 붙는다.
@분류 평가 지표 - 정확도
정확도 => 내가 예측한게 맞은 경우를 말한다. --> 앞의 True는 예측값과 실제값이 일치하는 경우
@분류 평가 지표 - 재현율
재현율 => 실제값이 True인것에 대한 내 예측이 맞은 경우 --> Positive는 True, Negative는 False라고 예측한것.
@분류 평가 지표 - 정밀도
정밀도 => 내가 True(Positive)라고 예측해서 실제값과 일치한 경우
@분류 평가 지표 - [F1-Score]
=> 정밀도와 재현율의 조화(산술) 평균 --> 걍 합쳐서 합친 갯수로 나눈거
@분류 평가 지표 - 재현율과 정밀도
================================================
Ajax
@Ajax로 데이터 전송해보기
=> 63일차 마지막에 Ajax의 구조에 대해 가볍게 보고 넘어갔는데, 금일은 이에 대한 실습 진행
=> VSCode와 Eclipse간의 데이터 주고 받는 실습 진행.
=> 위 사진 처럼 "datatype"을 지정해주지 않으면 자동으로 Get 방식이 된다.
%VS Code 작성
<body>
<button>서버 요청</button>
<script src="js/jquery-3.6.0.js"></script>
<script>
$('button').on('click',function(){
// button을 클릭했을 때 실행할 로직
$.ajax({
// 서버의 주소값
url : 'http://125.136.57.29:8081/Ajax/ex01Ajax?',
// data : {"num1": 'Bbo2Bbo2' , "num2":'bigiditi'},
data : 'num1=Bbo2Bbo2&num2=bigiditi',
success : function(res){
// function() -> 매개변수를 지정하면 서버에서 보내준 데이터를 받아올 수 있음
alert('요청 성공!');
alert(res)
},error : function(){
alert('요청 실패쓰');
}
})
})
</script>
</body>
- url : 실습 진행하는 컴퓨터의 IPv4 주소에 이클립스 프로젝트 명 뒤 파일명을 붙혀 설정.
- 이클립스 파일의 경우 annotation이 설정되었기 때문에, 간단하게 호출 가능하다
- data : 이는 내가 넘겨줄 데이터. 간단하게 2개의 변수에 정의하였다.
- 이유는 잘 모르겠는데... 띄어쓰기를 하면 null값이 나온다. 잘은.. 모르겠다.
- 혹은, 위에 주석처리된것 처럼 Dictionary의 형태로 키와 Value값을 정해 보내줘도 됨
- success / error : 성공, 실패시 처리될 부분을 기입. 매개변수 지정시, 이클립스에서 보내줄 데이터를 받을 수 있다.
% 이클립스 코드 작성
@WebServlet("/ex01Ajax")
public class ex01Ajax extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void service(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.addHeader("Access-Control-Allow-Origin", "*");
System.out.println("요청이 들어옴");
String s1 = request.getParameter("num1");
String s2 = request.getParameter("num2");
// 요청한 곳에 응답 데이터를 보내주고 싶다면
// PrintWriter 객체를 사용하면 된다.
PrintWriter out = response.getWriter();
out.print("h1"); // print한 데이터를 요청한 페이지에 돌려준다!!!
out.print("h2"); // print한 데이터를 요청한 페이지에 돌려준다!!!
out.print("h3"); // print한 데이터를 요청한 페이지에 돌려준다!!!
out.print("h4"); // print한 데이터를 요청한 페이지에 돌려준다!!!}}
- "ex01Ajax"라는 이름의 Servlet 파일 생성
- 이클립스에서 "Tomcat"을 통해 Server를 구현, "Client"에 해당하는 VSCode로 부터 요청을 받는다.
- 이에 대한 응답으로 "Access-Control-Allow-Origin"라는걸 주는데, 이는 "모든(*) 도메인을 허용"한다는 뜻.
- 그리고 "응답"을 통해 데이터를 전송, 이는 VSCode에서 매개변수로 값을 받아 알림창으로 띄웠으니 확인 가능하다.
@JSON( JavaScript Object Notation )
=> 속성-값 쌍으로 이루어진 데이터를 전달하기 위한 개방형 표준 포맷.
=> Ajax로 전송 가능한 데이터 형식인 3가지(CSV / XML / JSON) 중 한 가지.
- 사진과 같이 "Key"값과 "Value"값으로 이뤄진 파이썬에서의 Dictionary 형태이다.
% 실습 - HTML 파일 생성
<body>
<button>클릭요청</button>
<table border="1px">
<tr>
<th>이름</th>
<th>나이</th>
<th>성별</th>
</tr>
</table>
<script src="js/jquery-3.6.0.js"></script>
<script>
// ex02Ajax 서버로 들어갈 수 있는지 확인
//button을 클릭했을 때 콘솔창에 요청이 들어옴이 출력되도록 만들기
$('button').on('click',function(){
$.ajax({
// 같은 프로젝트 폴더 내부에 있기 때문에 servlet이 가지고 있는 mapping 값 사용 가능!
// POST방식으로 json구조를 전송할 때 에러가 뜨는 순간이 있을거다!
// JSON.tostringify(내가 전송할 json 구조 데이터)
url : 'ex02Ajax',
dataType : "json",
contentType: 'application/x-www-form-urlencoded; charset=euc-kr',
success : function(res){
alert("asd");
// res -> JSON Array 형태로 구성이 되어있다.
// for-each문 역할을 하는 함수
$('table tr+tr').empty(); // 내가 선택한 태그 비우는 기능
$.each(res, function(index, p) {
// res 배열 안에있는 데이터가 하나씩 뽑히면서 p에 담긴다.
$('table').append(
'<tr><td>'+ p.name +'</td><td>'+
p.age+'</td><td>'+p.gender+'</td></tr>');
// append -> 선택한 태그 내부에 데이터를 추가하는 방법
})},
error : function() {
alert("안된디");}})})
</script>
</body>
ㅁㄴㅇ
ㅁㄴㅇ
ㅁㄴㅇ
ㅁㄴㅇ
asd
@JSON - 실습
ㅁㄴㅇ
%제이쿼리에서의 반복문 each
asd
asd
asd
asd
반응형
'국비교육기관 > 수업' 카테고리의 다른 글
83일차 Linux / DeepLearning - XOR,OR 게이트, 퍼셉트론 (0) | 2021.07.05 |
---|---|
66일차 Git/GitHub 사용법 (0) | 2021.06.14 |
63일차 머신러닝 - Logistic Regression / jQuery[JS] - 이벤트, AJax, 동기/비동기식 통신 (0) | 2021.06.09 |
61일차 머신러닝 - 선형회귀 모델 성능 평가 법 / JavaScript - 태그 속성 수정 (1) | 2021.06.07 |
60일차 JavaScript - DOM, 정적/동적 Collection, Selector와 ElementBy의 차이 (0) | 2021.06.04 |
댓글