묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2 train_test_split 사용 관련 질문
작업형2문제를 풀때 eda 후 전처리&피처엔지니어링 단계에서 범주형자료들을 무조건 라벨인코딩만 하려고 합니다 ((원핫인코딩과 라벨인코딩 둘다 실행시켜서 비교안할거임)라벨인코딩만 하려는 상황에서도 train_test_split 을 사용해야 하는지 아니면 그냥 바로 랜덤포레스트를 돌려도 되는지 궁금합니다 작업형2 모의문제1 풀이를 적으면서 보는중인데 만약 train_test_split 을 사용안하면 랜덤포레스트 돌릴때model(X_tr,y_tr)pred =model.predict(X-val) 이자리에 뭘 넣어야 할지 궁금합니다 +train_test_split 을 사용하면 좋은 점수를 받는지도 궁금합니다 +작업형2 모의문제1 풀이에서 강사님이 처음에 drop의 방식을 하셨는데 drop방식보단 라벨인코딩이 더 좋은점수를 받을수 있는 풀이방법인지도 궁금합니다
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
인코딩과 컬럼선택기준
인코딩을 할때 선생님이 어쩔때는 원핫인코딩을 하시고 어쩔때는 레이블인코딩을 하시던데 그 인코딩을 정하시는 기준을 잘 모르겠습니다! 인코딩을 정하실때 그 경우에 대해서 자세히 알려주시면 감사하겠습니다 그리고 인코딩을 할때 컬럼도 몇개 정하셔서 하시던데 그 컬럼고르는 기준도 잘 모르겠습니다 그 기준에 대해서도 선택하는 방법을 알려주시면 감사하겠습니다 ㅠㅠ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
25강질문입니다
밑에적혀있던 시험환경 링크로 들어가서 강의들으면서 따라해봤는데요 선생님이 수업으로 진행하실때는 영상에 x_train, x_test, y_train 파일 3개가 있었는데 실제 제가 할때는 파일이 train이랑 test가 두개밖에없어서 RandomForestClassifier를 진행할때 영상에서는 model. fit(x_train,y_train['gender')를 적으셨는데 데이터가 2개밖에없다보니 어떻게 적어야할지모르겠습니다 이럴때는 랜덤포레스트말고 다른모델로 적용해야하나요? 아니면 RandomForestClassifier를 이용한 다른코딩법이있나요? 답변부탁드립니다!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 모의문제 1
마지막에 예측및 csv제출 하실ㄸ ㅐ'Attirition_Flag' : pred[:,1]로 하셨는데이탈할 고객을 찾아라니깐 이탈의 확률인 1의 확률로 구해야하는거 아닌가요? 제가생각한 답은 'Attirition_Flag' : pred[:,0] 이였는데 왜 그런거죠? +강사님train['Attrition_Flag'].value_counts() 을 치면0 68151 1286이렇게 나오는데pred = model.predict_proba(X_val)pred array([[0.88, 0.12], [0.95, 0.05], [1. , 0. ], ..., [0.66, 0.34], [1. , 0. ], [0.93, 0.07]])위 0,1 의 순서가 여기서도 동일하게 적용되서여기서 0.88은 0의 확률 0.12는 1의 확률인가요?그래서'Attirition_Flag' : pred[:,1]이 정답인건가요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
2회 기출유형(작업형2)
import pandas as pdimport numpy as npfrom sklearn.model_selection import train_test_splitdef exam_data_load(df, target, id_name="", null_name=""): if id_name == "": df = df.reset_index().rename(columns={"index": "id"}) id_name = 'id' else: id_name = id_name if null_name != "": df[df == null_name] = np.nan X_train, X_test = train_test_split(df, test_size=0.2, random_state=2022) y_train = X_train[[id_name, target]] X_train = X_train.drop(columns=[target]) y_test = X_test[[id_name, target]] X_test = X_test.drop(columns=[target]) return X_train, X_test, y_train, y_testdf = pd.read_csv("Train.csv") # 파일명이 다를 경우 파일명을 수정해주세요X_train, X_test, y_train, y_test = exam_data_load(df, target='Reached.on.Time_Y.N', id_name='ID')X_train.to_csv("X_train.csv", index=False)y_train.to_csv("y_train.csv", index=False)X_test.to_csv("X_test.csv", index=False) import pandas as pd X_test = pd.read_csv("X_test.csv") X_train = pd.read_csv("X_train.csv") y_train = pd.read_csv("y_train.csv") # X_train.shape, y_train.shape, X_test.shape #print(X_train.info()) print(X_test.info()) #print(y_train.info()) y_train = y_train.drop(columns = ['ID']) #print(X_train.shape, X_test.shape) X_train = X_train.drop(columns = ['ID']) X_train = X_train.drop(columns = ['Warehouse_block']) X_train = X_train.drop(columns = ['Mode_of_Shipment']) X_train = X_train.drop(columns = ['Product_importance']) X_train = X_train.drop(columns = ['Gender']) X_test = X_test.pop('ID') X_test = X_test.drop(columns = ['Warehouse_block']) X_test = X_test.drop(columns = ['Mode_of_Shipment']) X_test = X_test.drop(columns = ['Product_importance']) X_test = X_test.drop(columns = ['Gender']) #print(X_train.shape, X_test.shape) from sklearn.ensemble import RandomForestClassifier model = RandomForestClassifier() model.fit(X_train,y_train) model_pred = model.predict_proba(X_test) 강사님 안녕하세요. 위와 같이 인코딩을 하지 않고 object 컬럼을 지우는 방향으로 해서 모델학습을 진행하였어요. 그런데 이런 애러가 났어요. 어떻게 해야 할까요? None <ipython-input-36-25befb274901>:30: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples,), for example using ravel(). model.fit(X_train,y_train) /usr/local/lib/python3.10/dist-packages/sklearn/base.py:439: UserWarning: X does not have valid feature names, but RandomForestClassifier was fitted with feature names warnings.warn( --------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-36-25befb274901> in <cell line: 31>() 29 model = RandomForestClassifier() 30 model.fit(X_train,y_train) ---> 31 model_pred = model.predict_proba(X_test) 32 3 frames/usr/local/lib/python3.10/dist-packages/sklearn/utils/validation.py in check_array(array, accept_sparse, accept_large_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, ensure_min_samples, ensure_min_features, estimator, input_name) 900 # If input is 1D raise error 901 if array.ndim == 1: --> 902 raise ValueError( 903 "Expected 2D array, got 1D array instead:\narray={}.\n" 904 "Reshape your data either using array.reshape(-1, 1) if " ValueError: Expected 2D array, got 1D array instead: array=[ 8285. 10192. 8675. ... 7390. 9977. 5696.]. Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.
-
미해결[비전공자 대환영] 제로베이스도 쉽게 입문하는 파이썬 데이터 분석 - 캐글입문기
boxcox를 변환하는 코드 에
from scipy.special import boxcox1p from scipy.stats import boxcox_normmax # 왜도가 1보다 높은 수치형 변수를 출력하는 코드 high_skew = skewness_features[skewness_features > 1] high_skew_index = high_skew.index print("The data before Box-Cox Transformation: \n", all_df[high_skew_index].head()) # boxcox를 변환하는 코드 for num_var in high_skew_index: all_df[num_var] = boxcox1p(all_df[num_var], boxcox_normmax(all_df[num_var] + 1)) print("The data after Box-Cox Transformation: \n", all_df[high_skew_index].head())위와 같이 코드를 실행시켰을 때 다음과 같은 에러가 발생하였습니다. <ipython-input-72-7b0af0216c6e> in <cell line: 11>() 10 # boxcox를 변환하는 코드 11 for num_var in high_skew_index: ---> 12 all_df[num_var] = boxcox1p(all_df[num_var], boxcox_normmax(all_df[num_var] + 1)) 13 14 print("The data after Box-Cox Transformation: \n", all_df[high_skew_index].head()) BracketError: The algorithm terminated without finding a valid bracket. Consider trying different initial points.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
dropna와 drop의 차이가 궁금합니다.
#특정컬럼에 결측치가 있으면 데이터(행) 삭제 subset=['native.country']df = X_train.dropna(subset=['native.country']) # 결측치가 많은 특정 컬럼 삭제 drop(['workclass'], axis=1) df=X_train.drop(['workclass'], axis=1) 언제 drop을 쓰고, 언제 dropna를 쓰는지 궁금합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
적합도 검정 예제 결과, 답안은?
[작업형3] 범주형 데이터 분석 > 적합도 검정pvalue = 0.028이 나왔으니, 귀무가설 기각, 대립가설 채택으로 새로운 시험문제는 기존 시험문제 점수와 다르다. 가 맞는지요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
코랩 링크
매 강의마다 colab 링크가 있었던 것 같은데 어디서 확인할 수 있을까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
예시문제 작업형2(신버전) 질문
문제에 roc-auc 평가지표에 따라 평가함 해당 문구를 보고 확률값을 예측한다라고 판단하셨는데 또 다른 예시가 있을까요? 예측은 RandomForestRegressor을 사용하는 것으로 공부했는데 제가 잘못 알고 있는 걸까요?
-
미해결차량 번호판 인식 프로젝트와 TensorFlow로 배우는 딥러닝 영상인식 올인원
한국번호판 머신러닝
안녕하세요~한국 번호판도 OCR 인식이 가능할까요?데이터셋에 필요한게 무엇이 있을까요? 한국 번호판은 생성을 했는데..groundtruth.csv 파일도 필요할까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
구름 환경(실기테스트)에서 본페로니 검정 수행시 오류 발생
아노바 사후검정에 대해 실습환경에서 코드 수행해보려고 하는데, 아래와 같이 오류뜨는건 실습환경에서 지원하지 않는 모듈이라고 생각하면 될까요? from scipy import statsfrom statsmodels.stats.multicomp import pairwise_tukeyhsd, MultiComparsion# Tukey HSD(투키)tukey_result = pairwise_tukeyhsd(df_melt['value'], df_melt['variable'], alpha=0.05)print(tukey_result.summary()) ImportError: cannot import name 'MultiComparsion' from 'statsmodels.stats.multicomp' (/usr/local/lib/python3.9/dist-packages/statsmodels/stats/multicomp.py)
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
section 4-2 문제 관련 질문입니다.
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요section 4-2 문제 1번에서 object 컬럼을 삭제할 때에 보여주신 방법 외에 다른 방법을 사용해봤는데,이 방법도 가능한 건지 궁금해서 질문드립니다. import pandas as pdimport numpy as np df = pd.read_csv("members.csv")df = df.select_dtypes(exclude='object') <----------------------------- 아예 object 컬럼을 제외한 나머지 컬럼을 df에 담아도 가능한 건지 궁금합니다!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
[col] [[col]] 차이
안녕하십니까 강사님, 양질의 강의로 이해하기 쉽게 준비해주셔서 감사합니다.실은 섹션 11, 예시문제 작업형 2, 16:57 쯤에 복습 중for 문을 이용하여 조금 코드를 수정해보았습니다.아래의 코드가 바로 정상 작동하는 일부 수정한 코드입니다.from sklearn.preprocessing import MinMaxScaler cols = ['총구매액', '최대구매액', '환불금액', '내점일수', '내점당구매건수', '주말방문비율', '구매주기'] for col in cols: scaler = MinMaxScaler() X_train[col] = scaler.fit_transform(X_train[[col]]) X_test[col] = scaler.transform(X_test[[col]]) X_train.head()근데 바로 위의 `LabelEncoder`을 수행한 코드를 보면 for 문과 함께 [col]로 작성이 되어있는데, 이 일부 수정된 코드에서는 [col]을 적으면 왜 이 오류가 나오는지 잘 모르겠습니다.ValueError: Expected 2D array, got 1D array instead:[[col]] 를 작성해야만 정상 작동하더군요. 혹시 LabelEncoder를 적용한 바로 위의 코드와 어떤 차이가 있어서 []을 한번 더 기입해야 하나요?.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 2 - 모의고사 1 질문
기초적인 질문 드립니다. CLIENTNUM을 미삭제 시 오버피팅 때문에 삭제해야 한다고 말씀하셨는데, 이해가 되지 않아서요 ㅠ좀 더 자세한 설명 부탁드립니다. 미삭제 상태로 학습하면 결과가 어떻게 달라지나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
실험 환경에서도 작업형 2 점수 확인 할 수 있나요 ?
y_test = pd.read_csv("y_test.csv") print(roc_auc_score(y_test, pred[:,1])) 해당 코드로 점수 확인 해 볼 수 있나요 ?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
6회 작업형 3유형 질문드립니다!
ols 를 사용하는 포인트? 이유를 어디서 알 수 있는걸까요??
-
미해결실리콘밸리 엔지니어에게 배우는 파이썬 아파치 스파크
spark_kafka 실행시 java.lang.IllegalArgumentException 에러
Streaming에서 Kafka 데이타 추출하기 부분 진행하고 있는데요 spark_kafka.py 실행시 에러가 납니다. ㅠ root@81599cbd6b8f:/opt/bitnami/spark/work# spark-submit --master spark://spark:7077 --packages org.apache.spark:spark-sql-kafka-0-10_2.12:3.4.1 spark_kafka.py ..... --------------------------------------------------------------------- | | modules || artifacts | | conf | number| search|dwnlded|evicted|| number|dwnlded| --------------------------------------------------------------------- | default | 11 | 11 | 11 | 0 || 11 | 11 | --------------------------------------------------------------------- :: retrieving :: org.apache.spark#spark-submit-parent-8f3a0b4c-b23d-4dfa-b9b0-8649735433fc confs: [default] 11 artifacts copied, 0 already retrieved (56445kB/64ms) 23/11/18 23:57:21 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 23/11/18 23:57:24 WARN ResolveWriteToStream: spark.sql.adaptive.enabled is not supported in streaming DataFrames/Datasets and will be disabled. 23/11/18 23:57:24 WARN OffsetSeqMetadata: Updating the value of conf 'spark.sql.shuffle.partitions' in current session from '3' to '200'. 23/11/18 23:57:24 ERROR MicroBatchExecution: Query [id = 40288f62-daae-4e69-80db-ff6f83156268, runId = 535853f9-9153-44be-8eca-19f75ee8b4ea] terminated with error java.lang.IllegalArgumentException: Expected e.g. {"topicA":{"0":23,"1":-1},"topicB":{"0":-2}}, got {"logOffset":2} at org.apache.spark.sql.kafka010.JsonUtils$.partitionOffsets(JsonUtils.scala:75) at org.apache.spark.sql.kafka010.KafkaMicroBatchStream.deserializeOffset(KafkaMicroBatchStream.scala:216) at org.apache.spark.sql.execution.streaming.MicroBatchExecution.$anonfun$getStartOffset$1(MicroBatchExecution.scala:454) at scala.Option.map(Option.scala:230) at org.apache.spark.sql.execution.streaming.MicroBatchExecution.getStartOffset(MicroBatchExecution.scala:454) at org.apache.spark.sql.execution.streaming.MicroBatchExecution.$anonfun$constructNextBatch$4(MicroBatchExecution.scala:489) at org.apache.spark.sql.execution.streaming.ProgressReporter.reportTimeTaken(ProgressReporter.scala:411) at org.apache.spark.sql.execution.streaming.ProgressReporter.reportTimeTaken$(ProgressReporter.scala:409) at org.apache.spark.sql.execution.streaming.StreamExecution.reportTimeTaken(StreamExecution.scala:67) at org.apache.spark.sql.execution.streaming.MicroBatchExecution.$anonfun$constructNextBatch$2(MicroBatchExecution.scala:488) at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:286) at scala.collection.Iterator.foreach(Iterator.scala:943) at scala.collection.Iterator.foreach$(Iterator.scala:943) at scala.collection.AbstractIterator.foreach(Iterator.scala:1431) at scala.collection.IterableLike.foreach(IterableLike.scala:74) at scala.collection.IterableLike.foreach$(IterableLike.scala:73) at scala.collection.AbstractIterable.foreach(Iterable.scala:56) at scala.collection.TraversableLike.map(TraversableLike.scala:286) at scala.collection.TraversableLike.map$(TraversableLike.scala:279) at scala.collection.AbstractTraversable.map(Traversable.scala:108) at org.apache.spark.sql.execution.streaming.MicroBatchExecution.$anonfun$constructNextBatch$1(MicroBatchExecution.scala:477) at scala.runtime.java8.JFunction0$mcZ$sp.apply(JFunction0$mcZ$sp.java:23) at org.apache.spark.sql.execution.streaming.MicroBatchExecution.withProgressLocked(MicroBatchExecution.scala:802) at org.apache.spark.sql.execution.streaming.MicroBatchExecution.constructNextBatch(MicroBatchExecution.scala:473) at org.apache.spark.sql.execution.streaming.MicroBatchExecution.$anonfun$runActivatedStream$2(MicroBatchExecution.scala:266) at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23) at org.apache.spark.sql.execution.streaming.ProgressReporter.reportTimeTaken(ProgressReporter.scala:411) at org.apache.spark.sql.execution.streaming.ProgressReporter.reportTimeTaken$(ProgressReporter.scala:409) at org.apache.spark.sql.execution.streaming.StreamExecution.reportTimeTaken(StreamExecution.scala:67) at org.apache.spark.sql.execution.streaming.MicroBatchExecution.$anonfun$runActivatedStream$1(MicroBatchExecution.scala:247) at org.apache.spark.sql.execution.streaming.ProcessingTimeExecutor.execute(TriggerExecutor.scala:67) at org.apache.spark.sql.execution.streaming.MicroBatchExecution.runActivatedStream(MicroBatchExecution.scala:237) at org.apache.spark.sql.execution.streaming.StreamExecution.$anonfun$runStream$1(StreamExecution.scala:306) at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23) at org.apache.spark.sql.SparkSession.withActive(SparkSession.scala:827) at org.apache.spark.sql.execution.streaming.StreamExecution.org$apache$spark$sql$execution$streaming$StreamExecution$$runStream(StreamExecution.scala:284) at org.apache.spark.sql.execution.streaming.StreamExecution$$anon$1.run(StreamExecution.scala:207) Traceback (most recent call last): File "/opt/bitnami/spark/work/spark_kafka.py", line 38, in <module> query.awaitTermination() File "/opt/bitnami/spark/python/lib/pyspark.zip/pyspark/sql/streaming/query.py", line 201, in awaitTermination File "/opt/bitnami/spark/python/lib/py4j-0.10.9.7-src.zip/py4j/java_gateway.py", line 1322, in __call__ File "/opt/bitnami/spark/python/lib/pyspark.zip/pyspark/errors/exceptions/captured.py", line 175, in deco pyspark.errors.exceptions.captured.StreamingQueryException: [STREAM_FAILED] Query [id = 40288f62-daae-4e69-80db-ff6f83156268, runId = 535853f9-9153-44be-8eca-19f75ee8b4ea] terminated with exception: Expected e.g. {"topicA":{"0":23,"1":-1},"topicB":{"0":-2}}, got {"logOffset":2}
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
xgboost 사용 시 오류
xgboost로 학습시킬때 오류가 나오던데요. xgboost는 y값이 숫자형으로 되어있어야 학습이 가능한건지 궁금합니다.해당 문제에는 target 값이 low/high/... 와 같이 str 형식이여서 xgboost가 사용이 불가한건지해서요 :)
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
reset_index() 업데이트
판다스 Index객체 이해 강의에서 사용한 예제를 그대로 적용하니 문제가 생겨 질문드립니다reset_index()에 업데이트가 진행되어 칼럼명을 자동으로 바꿔주는 것 같은데 맞나요?value_counts()를 통해 titanic_df['Pclass']의 객체를 얻으면 기존에는 Name:Pclass 로 출력되었던 것 같은데, 이제는 value_counts()를 통해 얻은 모든 객체의 Name이 count로 표기되고 이렇게 name이 count인 객체에 한해 reset_index()를 적용했을 때 칼럼명을 자동으로 적절히 바꾸어주는 것 같습니다