교수님 안녕하십니까 교수님의 수업을 정말 즐기면서 듣고있는 AI빅데이터 전공 대학생입니다. 교수님의 강의 피마 인디언 당뇨병 예측 편을 보고 여태 배운 것을 백분 활용하여 제 방식대로 따로 모델을 구현을 해보았는데요. 먼저 임신횟수와 Outcome을 제외한 나머지 column들에 있는 0 값들은 모두 결측치로 판단하고 평균 값으로 대체하였습니다. RandomForestClassifier 알고리즘을 사용하고 GridSearchCV 함수를 통해 best estimator를 추출였습니다. 정밀도와 재현율이 동시에 높으면 좋지만 재현율이 증가하면 정밀도가 하락하는 현상(trade-off) 때문에 둘 중 하나를 선택해야 했고 이 피마 인디언 당뇨병 데이터 셋 같은 경우 병의 발견 목적으로 모델을 제작한다고 했을 때 실제로 당뇨병인데 모델이 당뇨병이 아니라고 예측하는 것이 치명적이라고 생각하여 정밀도 보다는 재현율을 중점적으로 보았습니다. 그리하여 precision_recall_curve 함수를 통해 최적의 재현율과 F1_score얻은 threshold 값을 추출하였습니다. 제가 얻은 값은 오차 행렬 [[72 28] [ 4 50]] 정확도: 79.22% , 정밀도: 64.10% , 재현율 92.59%, F1_Score: 75.76% 임계값: 0.32212471005503873 입니다. 오차 행렬을 보았을때도 한쪽에 치우쳐있는 불균형도 없다고 판단하였고 정밀도와 재현율 f1_score도 괜찮게 나왔다고 판단했습니다. 임계값을 0.32212471005503873로 주었을 때 roc_auc_score는 0.82296이라는 1에 꽤나 근접한 수치를 얻었습니다. 질문1: 이런식으로 모델을 찾아가는 방식이 옳은 방식인지 궁금합니다. 질문2: 제가 선택한 모델을 사용한다고 한다면 매번 RandomClassifier로 fit한 model을 Binarizer을 통해서 threshold 값을 매번 지정해주어야 하는건가요? 애초에 처음 모델을 fit할 때 임계값을 제가 부여는 못하는 것일가요?
File "/usr/local/lib/python3.9/site-packages/MySQLdb/connections.py", line 193, in init super().__init__(*args, **kwargs2) django.db.utils.OperationalError: (1044, "Access denied for user 'django'@'%' to database 'django'") mariadb 컨테이너를 실행 후, django 컨테이너를 실행 시 위와 같은 오류가 발생합니다. 찾아보니 django 에 대한 권한이 없어서 그렇다고 하는데, 해결방법이 있을까요?
선생님 안녕하세요! 5장 회귀 실습 2:캐글경연 주택가격 예측-Advanced Regression Techniques - 01 을 듣다가 타겟 값인 Price를 로그 변환하여 정규 분포 형태로 변환하고, 피처들 중 숫자형 컬럼의 Null 값 데이터 처리 부분 코드를 다음과 같이 썼습니다. 그런데 결과가 사진과 같이 float64가 포함된 형태로 나왔습니다. 제가 어떤 부분에서 잘못한 건지, 그리고 어떻게 해야 선생님과 같은 결과가 나올 수 있나요?ㅎㅎ # SalePrice 로그 변환 original_SalePrice = house_df['SalePrice'] house_df['SalePrice'] = np.log1p(house_df['SalePrice']) # Null이 너무 많은 컬럼들과 불필요한 컬럼 삭제 house_df.drop(['Id', 'PoolQC', 'MiscFeature', 'Alley', 'Fence', 'FireplaceQu'], axis=1, inplace=True) # Drop하지 않는 숫자형 Null 컬럼들은 평균 값으로 대체 num_columns = house_df.dtypes[house_df.dtypes !='object'].index.to_list() house_df[num_columns].fillna(house_df[num_columns].mean(), inplace=True) # Null 값이 있는 피처명과 타입을 추출 null_column_count = house_df.isnull().sum()[house_df.isnull().sum() > 0] print('## Null 피처의 Type :\n', house_df.dtypes[null_column_count.index])
어제 R studio를 여기서 하는데로 최신버전으로 깔았고, 여기서 하라는 데로 그대로 설치를 했습니다. 그리고 여기 강의를 들으면서 따라하던 중.. library(htmltab) 이것을 실행시키면 아래와 같은 문구가 뜨네요.. library(htmltab)에서 다음과 같은 에러가 발생했습니다:‘htmltab’이라고 불리는 패키지가 없습니다. 잠시 install.packages("htmltab")을 실행하지 않아서 그런가 봤더니. 그것도 아니어서... 그래서 더 낮은 32bit버전으로 깔고 해봤는데요... 똑 같습니다.. 그래서 인터넷에 검색해보니.. Package ‘htmltab’ was removed from the CRAN repository. 이렇게 나오네요.. 여기 나와 있는 밑에 답변이 있길래 기쁜마음에 복사해서 붙여놓고 하나하나 실행시켜봤습니다.. setwd("D:\\stock") #library(htmltab) url<-"http://finance.naver.com/item/sise_day.nhn?code=005380&page=1" # 종목 A url<-"http://finance.naver.com/item/sise_day.nhn?code=005930&page=1" # 종목B #install.packages("httr") library(httr) referer <- add_headers(Referer = "http://finance.naver.com/item/sise_day.nhn?code=005380&page=11") #검색해서 들어간 것처럼 위장하기위해 header를 붙여준다 tmp <- GET(url, referer) # GET함수를 통해 해당 서버에 통신을 함 뒤에 referer인자가 위장술 ta<-read_html(tmp)%>% html_nodes(xpath = '/html/body/table[1]') %>% html_table() ta2<-(ta[[1]]) ta2[-c(1,7,8,9,15),] code_data <- read.csv("data.csv",sep="\t") ? read.csv head(code_data) code <- as.character(code_data[,1]) code_name <- as.character(code_data[,2]) re_code <- as.character(sapply(code,function(x){ nc<- 6-nchar(x) paste0(c(rep(0,nc),x),collapse = "") })) k <- 1 i <- 1 for(k in 1:length(re_code)){ final_data<-NULL for(i in 1:10){ url <- paste0("https://finance.naver.com/item/sise_day.nhn?code=",re_code[k],"&page=",i) b <- htmltab(url,encoding="UTF-8") b final_data < -rbind(final_data,b) cat("\n",i) } head(final_data) tail(final_data) dim(final_data) .......... 결과는 몇줄 가지도 못하고 바로 add_headers(Referer = "https://finance.naver.com/item/main.naver?code=005380")에서 다음과 같은 에러가 발생했습니다: 함수 "add_headers"를 찾을 수 없습니다 로 나옵니다.. 이 문제가 반드시 해결이 되야 밑에 코딩한게 전부 의미가 있을 것 같습니다.
한국거래소를 타고서 예전에는 받을 수 있었던 것 같은데, 현재는 http://data.krx.co.kr/contents/MDC/MDI/mdiLoader/index.cmd?menuId=MDC0201020303 이 곳으로 들어가야 종목코드를 다운받을 수 있게 바뀌었네요.. 초보라 한참 찾았습니다. 그리고 강의하시는 제목 "stock R"이 사실은 다운로드 받은 자료의 "naver증권크롤링_예제.R"이네요
python-telegram-bot 20 버전부터는 비동기 프로그래밍이 적용되어 강의와는 다른 코드가 필요합니다. https://github.com/python-telegram-bot/python-telegram-bot/wiki/Introduction-to-the-API 위 깃허브 python-telegram-bot 공식 위키 페이지로 가시면 필수적이고 간단한 용례들을 보실 수 있습니다.
이렇게 말씀하시면 이해하기가 어렵습니다. 새로 올려주신 script_v2 그대로도 몇번이나 돌려봤습니다. 강의에서 이렇게 말해주신 파트가 script_v2에서는 이부분 입니다. 일단 이렇게 그대로 따라하면 df_map_join = left_join(df, df_map_id, by = c("ISO_A3" = "iso")) Error in `sf_column %in% names(g)`: ! Join columns in `x` must be present in the data. ✖ Problem with `ISO_A3`. Run `rlang::last_trace()` to see where the error occurred. 이런 에러가 떠서 "ISO_A3"를 -> "iso_a3"로 바꿔주었구요. 이건뭐 상관없고, 불필요한 변수를 미리 제거하라고 하셨는데 >head(df_map_join) Simple feature collection with 6 features and 169 fields Geometry type: MULTIPOLYGON Dimension: XY Bounding box: xmin: -180 ymin: -18.28799 xmax: 180 ymax: 83.23324 Geodetic CRS: WGS 84 featurecla scalerank labelrank sovereignt sov_a3 adm0_dif 1 Admin-0 country 1 6 Fiji FJI 0 2 Admin-0 country 1 3 United Republic of Tanzania TZA 0 3 Admin-0 country 1 7 Western Sahara SAH 0 4 Admin-0 country 1 2 Canada CAN 0 5 Admin-0 country 1 2 United States of America US1 1 level type tlc admin adm0_a3 geou_dif 1 2 Sovereign country 1 Fiji FJI 0 2 2 Sovereign country 1 United Republic of Tanzania TZA 0 3 2 Indeterminate 1 Western Sahara SAH 0 4 2 Sovereign country 1 Canada CAN 0 5 2 Country 1 United States of America USA 0 geounit gu_a3 su_dif subunit su_a3 brk_diff 1 Fiji FJI 0 Fiji FJI 0 2 Tanzania TZA 0 Tanzania TZA 0 3 Western Sahara SAH 0 Western Sahara SAH 1 4 Canada CAN 0 Canada CAN 0 5 United States of America USA 0 United States USA 0 name name_long brk_a3 brk_name brk_group abbrev 1 Fiji Fiji FJI Fiji <NA> Fiji 2 Tanzania Tanzania TZA Tanzania <NA> Tanz. 3 W. Sahara Western Sahara B28 W. Sahara <NA> W. Sah. 4 Canada Canada CAN Canada <NA> Can. 5 United States of America United States USA United States <NA> U.S.A. postal formal_en formal_fr name_ciawf note_adm0 1 FJ Republic of Fiji <NA> Fiji <NA> 2 TZ United Republic of Tanzania <NA> Tanzania <NA> 3 WS Sahrawi Arab Democratic Republic <NA> Western Sahara <NA> 4 CA Canada <NA> Canada <NA> 5 US United States of America <NA> United States <NA> note_brk name_sort name_alt mapcolor7 1 <NA> Fiji <NA> 5 2 <NA> Tanzania <NA> 3 3 Self admin.; Claimed by Morocco Western Sahara <NA> 4 4 <NA> Canada <NA> 6 5 <NA> United States of America <NA> 4 mapcolor8 mapcolor9 mapcolor13 pop_est pop_rank pop_year gdp_md gdp_year 1 1 2 2 889953 11 2019 5496 2019 2 6 2 2 58005463 16 2019 63177 2019 3 7 4 4 603253 11 2017 907 2007 4 6 2 2 37589262 15 2019 1736425 2019 5 5 1 1 328239523 17 2019 21433226 2019 economy income_grp fips_10 iso_a2 iso_a2_eh iso_a3 1 6. Developing region 4. Lower middle income FJ FJ FJ FJI 2 7. Least developed region 5. Low income TZ TZ TZ TZA 3 7. Least developed region 5. Low income WI EH EH ESH 4 1. Developed region: G7 1. High income: OECD CA CA CA CAN 5 1. Developed region: G7 1. High income: OECD US US US USA iso_a3_eh iso_n3 iso_n3_eh un_a3 wb_a2 wb_a3 woe_id woe_id_eh 1 FJI 242 242 242 FJ FJI 23424813 23424813 2 TZA 834 834 834 TZ TZA 23424973 23424973 3 ESH 732 732 732 -99 -99 23424990 23424990 4 CAN 124 124 124 CA CAN 23424775 23424775 5 USA 840 840 840 US USA 23424977 23424977 woe_note adm0_iso adm0_diff adm0_tlc adm0_a3_us adm0_a3_fr 1 Exact WOE match as country FJI <NA> FJI FJI FJI 2 Exact WOE match as country TZA <NA> TZA TZA TZA 3 Exact WOE match as country B28 <NA> B28 SAH MAR 4 Exact WOE match as country CAN <NA> CAN CAN CAN 5 Exact WOE match as country USA <NA> USA USA USA adm0_a3_ru adm0_a3_es adm0_a3_cn adm0_a3_tw adm0_a3_in adm0_a3_np adm0_a3_pk 1 FJI FJI FJI FJI FJI FJI FJI 2 TZA TZA TZA TZA TZA TZA TZA 3 SAH SAH SAH SAH MAR SAH SAH 4 CAN CAN CAN CAN CAN CAN CAN 5 USA USA USA USA USA USA USA adm0_a3_de adm0_a3_gb adm0_a3_br adm0_a3_il adm0_a3_ps adm0_a3_sa adm0_a3_eg 1 FJI FJI FJI FJI FJI FJI FJI 2 TZA TZA TZA TZA TZA TZA TZA 3 SAH SAH SAH SAH MAR MAR SAH 4 CAN CAN CAN CAN CAN CAN CAN 5 USA USA USA USA USA USA USA adm0_a3_ma adm0_a3_pt adm0_a3_ar adm0_a3_jp adm0_a3_ko adm0_a3_vn adm0_a3_tr 1 FJI FJI FJI FJI FJI FJI FJI 2 TZA TZA TZA TZA TZA TZA TZA 3 MAR SAH SAH SAH SAH SAH MAR 이걸 어떻게 제거하나요? 올려주신 script_v2 파일을 다시 재확인 및 수정부탁드립니다. 그리고 위,위에 출력코드 보시면 아시겠지만 바로 위 사진처럼 long lat order hole piece id group 그 어떤것도 찾을수없습니다. 지도가 며칠동안 이것만 붙잡고있는데 진도가 못나가서 너무 답답합니다.ㅏ script_v2랑 올려놓으셨던 강의랑 비교하셔서 수정부탁드립니다. ratio 범례도 , 강의보면서 코드계속 돌려봤습니다. 1 2 3 으로 나옵니다. 강의처럼 0.9 0.8 이렇게 나오질 않습니다.
해당 강의에서 작성하는 코드를 그대로 실행하면 되지 않습니다. 현재 iframe 태그가 자바스크립트를 통해 실행되기 때문에 페이지가 로드된 후에도 자바스크립트가 실행될 시간이 필요합니다. 강의처럼 iframe의 주소만 따와서 실행시키는 것이 아닌 전체 주소를 가져와 iframe 태그로 전환시켜주고 자바스크립트 실행까지 기다려 주는 방식으로 진행하셔야 합니다. https://velog.io/@os_js/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%9B%B9-%ED%81%AC%EB%A1%A4%EB%A7%81%EC%9D%B4%EC%9A%A9-%ED%85%94%EB%A0%88%EA%B7%B8%EB%9E%A8-%EC%B1%97%EB%B4%87 저도 강의중 안됐던 내용이 있었기에 그에 대한 내용을 블로그에 올려두었습니다. 강의 진행대로 따라하다가 안되는 부분만 정리하여 올렸기 때문에 강의내용과 비교하시면서 보셔야 될 듯 합니다.
안녕하세요? date_01 = ymd("2030년 1월 1일") wday(date_01)을 출력하면 3이 나오는 이유를 수업에서 넘어가신 것 같습니다ㅠ 그 이후로 week_start = 1은 월요일을 시작점으로 두는 거고, 보통 week_start는 일요일로 처음에 잡혀있다고 하셨으니, 일요일을 1로 생각하면 화요일이 3으로 나오는 것 추측됩니다만 잘 모르겠습니다ㅠ 만약 제 추측이 맞다면 더 헷갈리는데, week_start = 1이 월요일이니, week_start = 0은 일요일을 뜻하나요? 그럼 0 , 1, 2해서 화요일은 2가 나와야 하지 않나라는 생각도 들어서요...ㅠ
본강의영상에는 마지막에 df_map_join_vac라는 값이 console을 보면 깔끔하고 가독성좋게 데이터시각화되어 표기되는것을 확인할수있습니다. 이번에 새로 올려주신 scrips_v2 파일을 보면서 공부를 하고 있는데요. 세계지도 시각화를 만들기위해 모든과정을 거쳐 마지막에 넣는 값 df_map_join_vac가 무슨 값을 가지고있는지 알아보기가 매우 힘듭니다.
새로 올려주신 파일로 백신데이터 공부중입니다. df_agg = aggregate(data = df[, -5], total ~ ., FUN = "sum") ## 이코드가 무슨 의미인가요? 제가 이해한 내용은 다음과같습니다 "df데이터 중 5번째 항목은 제외한 데이터를 가지고, ( . <-이 전체를 의미하는건가요?그렇다치면) 전체를 기준으로total 변수를 sum(합)합한다." '뭘 어떻게 합한거지(sum)?? 해당코드를 출력해보면 데이터출력에 차이가 생기기는 하는데, 이해하기 어렵습니다.