묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[개정판] 파이썬 머신러닝 완벽 가이드
회귀 분석 질문입니다.
먼저 강의 감사합니다. 강좌와 책의 예제인 자전거 수요예측을 보고 몇가지 질문이 생겼습니다. 1. 만약 독립변수가 모두 범주형이면 전부 원-핫 인코딩을 하고 회귀분석하는 방법이 올바른지 궁금합니다. 2. 최적 하이퍼파라미터를 찾기위해 GridSearchCV를 사용하는데 데이터의 크기가 크면 시간이 오래 걸린다고 알고있습니다. 이때 먼저 설정하고 추후에 세부적인 하이퍼 파라미터값을 바꾸면 좋다고 질문/답변에서 보았는데 혹시 회귀분석 알고리즘별로 GridSerarchCV를 사용해 먼저 설정할 값과 추후에 세부적으로 설정할 파라미터 값을 알고싶습니다! 3. 하이퍼 파라미터의 최적값을 찾았다는 가정하에 랜덤포레스트보다 그래디언트부스트트리가 더 성능이 좋을까요? 4. 회귀분석에서 모델을 평가 하는 지표는 MSE, RMSE, R-squared, MAE 정도로 알고있습니다. 혹시 강사님께서 보실때 '성능이 좋은 모델'의 위 4개의 지표의 기준이 있을까요? 감사합니다.
-
해결됨정말 쉽게 풀어보는 코딩 테스트 top 기본 문제 (with 자바)
replace() 사용은 어떤가요?
안녕하세요. 선생님 보다가 궁금한게 있는대요. 저 같은 경우 String의 replace(), indexOf() 메소드를 이용하여 다음과 같이 구현했습니다. public static int numUniqueEmails(String[] emails) { Set<String> set = new HashSet<>(); for (String email : emails) { String[] str = email.split("@"); str[0] = str[0].replace(".", ""); int index = str[0].indexOf("+"); if (index >= 0) { str[0] = str[0].substring(0, index); } set.add(str[0] + "@" + str[1]); } return set.size();} 단순 구현 방식의 차이인 건지 아니면 StringBuilder 를 이용하는 것이 더 이점이 있는 건지 궁금합니다.
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
IOS 사용중 입니다. 강의 백그라운드 재생 문의 건
안녕하세요 파이썬 강의를 백그라운드로 듣고싶은데 지원이 되나요? IOS 휴대폰 입니다
-
미해결선형대수학개론
3.2 example 1. det(A)구할때
det A 구할때 echelon form 구할때 row 3에서 -6 2를 -3 1로 약분해야 되는것 아닌가요? 약분하면 안된다면 왜 안될까요?
-
해결됨실전! Querydsl
[수정, 삭제 벌크연산] subtract 메서드
안녕하세요 .강사님 작은 부분이지만, 다른 분들도 아시면 좋을 것 같아서 조심스럽게 적어 봅니다. [수정, 삭제 벌크연산] 강의 중 더하기는 add(1), 빼기는 add(-1)하면 된다고 알려주셨는데, 또한 subtract란 메서드로도 뺄셈 연산이 가능하여 전달 드립니다. 항상 좋은 강의 감사드립니다 ^^! 많은 도움 받고 있습니다. @Testpublic void bulkAdd(){ long count = queryFactory .update(member) .set(member.age, member.age.add(1)) .execute();}@Testpublic void bulkSubtract(){ long count = queryFactory .update(member) .set(member.age, member.age.subtract(1)) .execute(); }
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
로그아웃 기능 테스트
화면에선 "로그인 후 이를 이용해 로그아웃해 보면...." 이라고 하셨는데 실제 Postman 설정을 어떻게 해야 로그아웃 테스트를 할 수 있나요?
-
미해결쉽게 따라하는 SketchUp Pro 2019 (한국어판)
5번째 강의 오류 [편집도구]
스마트폰으로 보고있습니다. 그 앞 강의들은 다 괜찮았는데 그 강의만 슬로우모션한 것처럼 들립니다. 속도조절 버튼이 있길래 2배속 빠르게 설정해 보았으나 별 다를게 없었습니다. 어떻게 된 건가요? 저만 이런건가요?
-
미해결R로 하는 웹 크롤링 - 입문편
네이버 실시간 검색어 크롤링 질문드립니다.
네이버 메인에서 페이지 소스 보기를 해도 이제 더이상 실시간 검색어가 찾아지질 않습니다. 이 경우에 어떻게 크롤링해야 하는지 궁금합니다. 두번째 질문은 네이버 데이터랩 자료를 크롤링하려고 하는데, 자꾸 불완전한 마지막 행이 발견되었다는 에러메시지가 뜹니다. 소스 코드로는 url<-"https://datalab.naver.com/keyword/realtimeList.naver?where=main" b<-readLines(url,encoding="UTF-8") 를 입력하였는데, 이 경우 b의 값이 제가 아는 페이지 소스값과 너무 다르게 나와서 혼란스러운데 이 경우 데이터랩의 자료를 어떻게 가져와야 하나요?
-
미해결제발 도커 씁시다!
Security Warning이 뜨는데 패스하고 넘어가도 될까요?
SECURITY WARNING: You are building a Docker image from Windows against a non-Windows Docker host. All files and directories added to build context will have '-rwxr-xr-x' permissions. It is recommended to double check and reset permissions for sensitive files and directories. docker build시에 뜨는 경고문인데 그냥 넘어가도 될까요?
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
36번 다소 헷갈려서 질문을 드립니다.
for(j = i-1; j>=0; j--){ // 1 if(a[j]>tmp) a[j+1] = a[j]; else break; } a[j+1]=tmp; // 2 처음 for문이 시행될 때에 j는 i가 1이기 때문에, j는 0으로 초기화가 된 상태에서 for문 안에 있는 일련의 if문을 거치고 난 뒤에 j--에 의해 j가 -1로 바뀐 상황에서, 이미 j>=0이라는 컨디션에 해당안하기에 바로 a[0]=tmp; 가 된다고 이해하였습니다. 이게 다른건 몰라도 삽입은 할 때마다 이상하게 상기 ㅈ주석으로 표시한 2코드의 의미가 이해가 안된다기보다는 오히려 확 와닿지를 않는다고 표현하는게 더 적절하네요ㅜㅜㅜ 그렇다면 for문 대신 while(j>=0&&a[j]>tmp){ if(a[j]>tmp){a[j+1] = a[j];} else break; j--; } a[j+1]=tmp; } 라고 표현해도 괜찮을까요? 늘 감사드립니다.
-
해결됨프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
= 와 ==의 차이
is(=)는 변수가 같은 Object(객체)를 가리키면 True, ==는 변수가 같은 Value(값)을 가지면 True로 알고 있습니다. 그런데 코딩을 하면 할 수록 둘의 차이가 계속 헛갈립니다. 이번 강의에서는 a = 'Park', if a == 'Kim' 으로 표현하셨는데 두 번째에 왜 ==가 오는 지 잘 모르겠습니다.
-
미해결영리한 프로그래밍을 위한 알고리즘 강좌
pdf에 있는 Excercise 답은 없나요?
답과 해설이 있으면 더 좋을것같은데요...
-
해결됨프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
예외와 에러의 차이
강의 설명에서 예외와 에러를 혼동해서 사용하시는 것 같아요. "둘을 나누어 보기보다, 의도한대로 작동하지 않으면 예외로 생각하자"고 하셨는데, 강의의 설명에서 '에러'로 말씀하신걸 "예외'로 생각해도 될까요?
-
미해결초간단 초스피드 데이터 수집 (파이썬 크롤링)
chromedriver 라이브러리
프로젝트 왼쪽에 나온것처럼 chromedriver 추가하려면 어떻게 해야하나요?? 드라이버 설치하고 경로를 바탕화면으로 설정한 다음에 webdriver.Chrome('설치경로')로 했는데도 왼쪽에 추가가 안 됩니다 ㅠㅠ
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
35번 궁금합니다.
선생님, 선생님의 코드에 비해 저의 코드에 어떠한 불필요한 과정이 있는지 알려주시면 대단히 감사하겠씁니다. 많이 까주세요. 감사합니다. #include<iostream> #include<vector> using namespace std; void swap(int* a, int* b) { int tmp; tmp = *a; *a = *b; *b = tmp; } int main() { int N; int negative = 0; //입력받은 음수의 개수 int start = 0; //음수가 맨 앞으로 도달하면 그 다음으로 인덱스를 설정 int positive = 0; //양수의 시발점을 표현하기 위한 인덱스 cin >> N; vector<int>index(N); vector<int>arr(N); for (int i = 0; i < N; i++) { index[i] = i; } for (int i = 0; i < N; i++) { cin >> arr[i]; if (arr[i] < 0) { negative++; } } for (int i = 0; i < N; i++) { if (start == negative) { break; } if (arr[i] < 0) { swap(&arr[start], &arr[i]); swap(&index[start], &index[i]); start++; } } for (int i = 0; i < N; i++) { if (arr[i] < 0) { positive++; } } for (int i = positive; i < N; i++) { int min = index[i]; for (int j = i + 1; j < N; j++) { if (min > index[j]) { swap(&index[i], &index[j]); swap(&arr[i], &arr[j]); } } } for (int i = 0; i < N; i++) { printf("%d ", arr[i]); } }
-
미해결Node.js - Express
이메일 입력하면 제출이 안됩니다..
var http = require('http'); var fs = require('fs'); var url = require('url'); var qs = require('querystring'); var template = require('./lib/template.js'); var path = require('path'); var sanitizeHtml = require('sanitize-html'); var app = http.createServer(function(request,response){ var _url = request.url; var queryData = url.parse(_url, true).query; var pathname = url.parse(_url, true).pathname; if(pathname === '/'){ if(queryData.id === undefined){ fs.readdir('./data', function(error, filelist){ var title = 'Welcome'; var description = 'Hello, Node.js'; var list = template.list(filelist); var html = template.HTML(title, list, `<h2>${title}</h2>${description}`, `<a href="/create">create</a>` ); response.writeHead(200); response.end(html); }); } else { fs.readdir('./data', function(error, filelist){ var filteredId = path.parse(queryData.id).base; fs.readFile(`data/${filteredId}`, 'utf8', function(err, description){ var title = queryData.id; var sanitizedTitle = sanitizeHtml(title); var sanitizedDescription = sanitizeHtml(description, { allowedTags:['h1'] }); var list = template.list(filelist); var html = template.HTML(sanitizedTitle, list, `<h2>${sanitizedTitle}</h2>${sanitizedDescription}`, ` <a href="/create">create</a> <a href="/update?id=${sanitizedTitle}">update</a> <form action="delete_process" method="post"> <input type="hidden" name="id" value="${sanitizedTitle}"> <input type="submit" value="delete"> </form>` ); response.writeHead(200); response.end(html); }); }); } } else if(pathname === '/create'){ fs.readdir('./data', function(error, filelist){ var title = 'WEB - create'; var list = template.list(filelist); var html = template.HTML(title, list, ` <form action="/create_process" method="post"> <p><input type="text" name="title" placeholder="title"></p> <p> <textarea name="description" placeholder="description"></textarea> </p> <p> <input type="submit"> </p> </form> `, ''); response.writeHead(200); response.end(html); }); } else if(pathname === '/create_process'){ var body = ''; request.on('data', function(data){ body = body + data; }); request.on('end', function(){ var post = qs.parse(body); var title = post.title; var description = post.description; fs.writeFile(`data/${title}`, description, 'utf8', function(err){ response.writeHead(302, {Location: `/?id=${title}`}); response.end(); }) }); } else if(pathname === '/update'){ fs.readdir('./data', function(error, filelist){ var filteredId = path.parse(queryData.id).base; fs.readFile(`data/${filteredId}`, 'utf8', function(err, description){ var title = queryData.id; var list = template.list(filelist); var html = template.HTML(title, list, ` <form action="/update_process" method="post"> <input type="hidden" name="id" value="${title}"> <p><input type="text" name="title" placeholder="title" value="${title}"></p> <p> <textarea name="description" placeholder="description">${description}</textarea> </p> <p> <input type="submit"> </p> </form> `, `<a href="/create">create</a> <a href="/update?id=${title}">update</a>` ); response.writeHead(200); response.end(html); }); }); } else if(pathname === '/update_process'){ var body = ''; request.on('data', function(data){ body = body + data; }); request.on('end', function(){ var post = qs.parse(body); var id = post.id; var title = post.title; var description = post.description; fs.rename(`data/${id}`, `data/${title}`, function(error){ fs.writeFile(`data/${title}`, description, 'utf8', function(err){ response.writeHead(302, {Location: `/?id=${title}`}); response.end(); }) }); }); } else if(pathname === '/delete_process'){ var body = ''; request.on('data', function(data){ body = body + data; }); request.on('end', function(){ var post = qs.parse(body); var id = post.id; var filteredId = path.parse(id).base; fs.unlink(`data/${filteredId}`, function(error){ response.writeHead(302, {Location: `/`}); response.end(); }) }); // 로그인 } else if (pathname === '/login'){ fs.readdir('./data', function(error, filelist){ var title = 'Login'; var list = template.list(filelist); var html = template.HTML(title, list, ` <from action="login_process" method="post"> <p><input type="text" name="email" placeholder="email"></p> <p><input type="password" name="password" placeholder="password"></p> <p><input type="submit"></p> </from>`, `<a href="/create">create</a>` ); response.writeHead(200); response.end(html); }); // 로그인 받기 }else if ( pathname ==='/login_process'){ var body = ''; request.on('data', function(data){ body = body + data; }); request.on('end', function(){ var post = qs.parse(body); if(post.email === 'fkxodbs@naver.com' && post.password ==='111111'){ response.writeHead(302, { 'Set-Cookie' : [ `email=${post.email}`, `password=${post.password}`, `nickname=egoing` ], Location: `/` }); response.end(); }else { response.end('who?'); } }); } else { response.writeHead(404); response.end('Not found'); } }); app.listen(3000); --------- var http = require('http'); var cookie = require('cookie'); http.createServer(function(request,respone){ console.log(request.headers.cookie) var cookies = {} if(request.headers.cookie !== undefined){ cookies = cookie.parse(request.headers.cookie) } console.log(cookies.yummy_cookie); console.log(request.headers.cookie); respone.writeHead(200, { 'Set-Cookie' : [ 'yummy_cookie=choco', 'tasty_cookie=strawberry', `Permanent=cookies; Max-Age=${60*60*24*30}`, // Max-Age= 현재 시점을 기준으로 얼마나 살아있을까 정한다 'Secure=Secure; Secure', 'HttpOnly=HttpOnly; HttpOnly', 'Path=Path; Path=/cookie', 'Domain-Domain; Domain=02.org' ] }) respone.end('cookie!!') }).listen(3000);
-
미해결홍정모의 따라하며 배우는 C++
유투브로 수강하다 이제 인프런으로 건너왔습니다.
교수님의 유투브 [따배씨++]로 공부하다 인프런으로 건너왔습니다. 4.10 구조체 Structure까지 공부했습니다. * 저는 1987년부터 7년간 대한항공 시스템부에서 IBM Macro Assemble어로 프로그래밍, 설계, PM을 했고 PC가 처음 나왔을 때, Turbor-C와 DBase IV를 이용해 Mainframe-PC Interface Program을 1년간 했었습니다 이제 나이 많이 먹었지만, C++을 도전하고 싶습니다. 나이들어도 프로그래머가 되고 싶다는 젊은 시절의 꿈을 이루고 싶습니다. 다음은 파이선도 해보고 싶구요. 어셈블러->C->C++->Python 으로 이어지는 같은 계열의 프로그래밍으로 이어가고 싶군요. 앞으로 많은 가르침 받겠습니다.
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
NameError와 AttributeError의 차이
예컨대 python이 print(time.time())에서 time이 변수인지, 모듈/클래스에 있는 속성인지 어떻게 알 수 있는지 궁금합니다. 구글링 결과, <변수에 바로 접근할 때 오류가 있으면 이름 오류가 발생하고, 마침표(.)를 찍고 그 인스턴스의 속성에 접근할 때 오류가 있으면 속성 오류가 발생합니다.> 라는 설명이 있어 실험적으로 print(a.a())라 적었는데 NameError가 뜨네요. (time도 변수라 생각하면 a도 변수라 생각했습니다.) 두 개를 나누는 기준 혹은 어떤 걸 속성으로 인지하고 어떤 걸 변수로 인지하는지 궁금합니다.
-
미해결스케치 뚝딱 끝내기! 입문자용 무료 강좌
아트보드 질문드립니다!
제가 아트보드를 만들게 되면 일반적인 흰색의 사각형이 나옵니다. 그런데 강의영상을 보면 아이폰 아트보드가 노치디자인으로 구성되어있는 것으로 보이는데요. 이 노치디자인은 강사님께서 직접 만드신건가요??
-
미해결공공데이터로 파이썬 데이터 분석 시작하기
seaborn.barplot 결과 화면에서 남는 bar가 한개 있습니다..
안녕하세요! 강의를 완강하고 개인프로젝트로 데이터분석 연습하고 있는 학생입니다. 다름이 아니라 개인 프로젝트 도중에 궁금한 점이 생겨서 질문드립니다!. 그림 처럼 seaborn 의 barplot을 이용했습니다. 그런데 출력화면에서 가장 맨 오른쪽에 x축 이름이 없는 바가 한개 추가되있습니다... 이게 어떤 의미인가요..? 아래 isnull() 부분 보시면 결측치도 하나도 없습니다... 맨 오른쪽의 하나 막대기는 대체 뭘 의미하는 건가요...? 그리고 비만정도를 제가 bmi값으로 분류했는데 비만정도에 입력이 안된 값을 찾아보려고 pandas.options.display.max_rows = 1400 개 (전체 행이 1339개 됩니다) 출력해서 일일이 다 확인했는데 비만정도에 빈칸이나 NaN값이 들어간 행은 절!대! 없습니다..