คำถามติดแท็ก scikit-learn

Scikit-learn เป็นโมดูล Python ซึ่งประกอบด้วยเครื่องมือที่ง่ายและมีประสิทธิภาพสำหรับการเรียนรู้ของเครื่องจักรการทำเหมืองข้อมูลและการวิเคราะห์ข้อมูล มันถูกสร้างขึ้นบน NumPy, SciPy และ matplotlib มันเผยแพร่ภายใต้ใบอนุญาต BSD 3-Clause

8
ข้อแตกต่างระหว่าง fit และ fit_transform ในรุ่น scikit_learn หรือไม่?
ฉันเป็นมือใหม่ในด้านวิทยาศาสตร์ข้อมูลและฉันไม่เข้าใจความแตกต่างระหว่างfitและfit_transformวิธีการในการเรียนรู้ Scikit ใครช่วยอธิบายได้ไหมว่าทำไมเราถึงต้องแปลงข้อมูล แบบจำลองการฟิตข้อมูลการฝึกอบรมและการแปลงเป็นข้อมูลการทดสอบหมายความว่าอย่างไร มันหมายความว่าตัวอย่างเช่นการแปลงตัวแปรเด็ดขาดเป็นตัวเลขในรถไฟและแปลงคุณสมบัติใหม่เพื่อทดสอบข้อมูล?

3
เมื่อใดจึงต้องใช้ One Hot Encoding กับ LabelEncoder vs DictVectorizor
ฉันได้สร้างแบบจำลองที่มีข้อมูลหมวดหมู่มาระยะหนึ่งแล้วและเมื่ออยู่ในสถานการณ์นี้ฉันเริ่มใช้ฟังก์ชั่น LabelEncoder ของ scikit-Learn เพื่อแปลงข้อมูลนี้ก่อนที่จะสร้างแบบจำลอง ผมเข้าใจความแตกต่างระหว่างOHE, LabelEncoderและDictVectorizorในแง่ของสิ่งที่พวกเขากำลังทำเพื่อข้อมูล แต่สิ่งที่ไม่ชัดเจนกับผมคือเมื่อคุณอาจเลือกที่จะจ้างเทคนิคหนึ่งมากกว่าอีก มีอัลกอริทึมหรือสถานการณ์บางอย่างที่มีข้อดี / ข้อเสียเกี่ยวกับผู้อื่นหรือไม่?

11
SVM โดยใช้ scikit เรียนรู้ทำงานอย่างไม่มีที่สิ้นสุดและไม่เคยดำเนินการจนเสร็จสมบูรณ์
ฉันพยายามเรียกใช้ SVR โดยใช้ scikit learn (python) บนชุดข้อมูลการฝึกอบรมที่มี 595605 แถวและ 5 คอลัมน์ (คุณสมบัติ) และชุดทดสอบที่มี 397070 แถว ข้อมูลได้รับการประมวลผลล่วงหน้าและทำให้เป็นมาตรฐาน ฉันสามารถรันตัวอย่างทดสอบได้สำเร็จ แต่เมื่อใช้งานชุดข้อมูลของฉันและปล่อยให้มันทำงานนานกว่าหนึ่งชั่วโมงฉันก็ยังไม่เห็นผลลัพธ์หรือการสิ้นสุดของโปรแกรม ฉันได้ลองใช้งานด้วย IDE ที่แตกต่างกันและแม้กระทั่งจาก terminal แต่นั่นก็ไม่ได้เป็นปัญหา ฉันได้ลองเปลี่ยนค่าพารามิเตอร์ 'C' จาก 1 เป็น 1e3 แล้ว ฉันกำลังเผชิญปัญหาที่คล้ายกันกับการใช้งาน svm ทั้งหมดโดยใช้ scikit ฉันไม่ได้รอให้เสร็จหรือไม่ การดำเนินการนี้ควรใช้เวลาเท่าไหร่ จากประสบการณ์ของฉันไม่ควรใช้เวลาสักครู่ นี่คือการกำหนดค่าระบบของฉัน: Ubuntu 14.04, RAM 8GB, หน่วยความจำฟรีมากมาย, โปรเซสเซอร์เจนเนอเรชั่นที่ 4 รุ่นที่ 4

6
สตริงเป็นคุณลักษณะในต้นไม้ตัดสินใจ / ฟอเรสต์แบบสุ่ม
ฉันกำลังทำปัญหาบางอย่างกับการใช้ต้นไม้ตัดสินใจ / ป่าสุ่ม ฉันกำลังพยายามหาปัญหาที่มีตัวเลขและสตริง (เช่นชื่อประเทศ) เป็นคุณลักษณะ ตอนนี้ห้องสมุดscikit-learnจะใช้ตัวเลขเป็นพารามิเตอร์เท่านั้น แต่ฉันต้องการฉีดสตริงรวมถึงมีความรู้จำนวนมาก ฉันจะจัดการสถานการณ์ดังกล่าวได้อย่างไร ฉันสามารถแปลงสตริงเป็นตัวเลขโดยกลไกบางอย่างเช่น hashing ใน Python แต่ฉันต้องการทราบวิธีปฏิบัติที่ดีที่สุดเกี่ยวกับวิธีการจัดการสตริงในปัญหาต้นไม้การตัดสินใจ

9
รถไฟ / ทดสอบ / การตรวจสอบการตั้งค่าการแยกใน Sklearn
ฉันจะแยกเมทริกซ์ข้อมูลและเวกเตอร์เลเบลที่สอดคล้องกันเป็น X_train, X_test, X_val, y_train, y_test, y_test, y_val ด้วย Sklearn ได้อย่างไร เท่าที่ฉันรู้sklearn.cross_validation.train_test_splitมีเพียงความสามารถในการแยกออกเป็นสองไม่ใช่ในสาม ...

5
scikit-learn มีการเลือกล่วงหน้า / อัลกอริทึมการถดถอยแบบขั้นตอนหรือไม่
ฉันกำลังทำงานกับปัญหาที่มีคุณสมบัติมากเกินไปและการฝึกอบรมแบบจำลองของฉันใช้เวลานานเกินไป ฉันใช้อัลกอริทึมการเลือกไปข้างหน้าเพื่อเลือกคุณสมบัติ อย่างไรก็ตามฉันสงสัยว่า scikit-Learn มีการเลือกล่วงหน้า / อัลกอริทึมการถดถอยแบบขั้นตอนหรือไม่

1
ทำไม xgboost จึงเร็วกว่า GradientBoostingClassifier ของ sklearn มาก?
ฉันพยายามที่จะฝึกอบรมการยกระดับความลาดชันของตัวอย่างมากกว่า 50k ด้วยคุณสมบัติตัวเลข 100 ตัว XGBClassifierจัดการ 500 ต้นภายใน 43 วินาทีบนเครื่องของฉันในขณะที่GradientBoostingClassifierจัดการเพียง 10 ต้น (!) ใน 1 นาทีและ 2 วินาที :( ฉันไม่ได้พยายามที่จะเติบโต 500 ต้นเพราะจะใช้เวลาหลายชั่วโมงฉันใช้แบบเดียวกันlearning_rateและmax_depthการตั้งค่า ดูด้านล่าง อะไรทำให้ XGBoost เร็วขึ้นมาก? มันใช้การปรับแต่งแบบใหม่เพื่อส่งเสริมการไล่ระดับสีที่พวก sklearn ไม่รู้หรือไม่? หรือว่า "ตัดมุม" และปลูกต้นไม้ที่ตื้นขึ้น? ป.ล. ฉันตระหนักถึงการสนทนานี้: https://www.kaggle.com/c/higgs-boson/forums/t/10335/xgboost-post-competition-surveyแต่ไม่สามารถหาคำตอบได้ที่นั่น ... XGBClassifier(base_score=0.5, colsample_bylevel=1, colsample_bytree=1, gamma=0, learning_rate=0.05, max_delta_step=0, max_depth=10, min_child_weight=1, missing=None, n_estimators=500, nthread=-1, objective='binary:logistic', reg_alpha=0, reg_lambda=1, …
29 scikit-learn  xgboost  gbm  data-mining  classification  data-cleaning  machine-learning  reinforcement-learning  data-mining  bigdata  dataset  nlp  language-model  stanford-nlp  machine-learning  neural-network  deep-learning  randomized-algorithms  machine-learning  beginner  career  xgboost  loss-function  neural-network  software-recommendation  naive-bayes-classifier  classification  scikit-learn  feature-selection  r  random-forest  cross-validation  data-mining  python  scikit-learn  random-forest  churn  python  clustering  k-means  machine-learning  nlp  sentiment-analysis  machine-learning  programming  python  scikit-learn  nltk  gensim  visualization  data  csv  neural-network  deep-learning  descriptive-statistics  machine-learning  supervised-learning  text-mining  orange  data  parameter-estimation  python  pandas  scraping  r  clustering  k-means  unsupervised-learning 

3
ทำความเข้าใจกับ predict_proba จาก MultiOutputClassifier
ฉันกำลังติดตามตัวอย่างนี้ในเว็บไซต์ scikit-Learn เพื่อทำการจัดประเภทมัลติเอาท์พุทด้วยโมเดล Random Forest from sklearn.datasets import make_classification from sklearn.multioutput import MultiOutputClassifier from sklearn.ensemble import RandomForestClassifier from sklearn.utils import shuffle import numpy as np X, y1 = make_classification(n_samples=5, n_features=5, n_informative=2, n_classes=2, random_state=1) y2 = shuffle(y1, random_state=1) Y = np.vstack((y1, y2)).T forest = RandomForestClassifier(n_estimators=10, random_state=1) multi_target_forest = MultiOutputClassifier(forest, n_jobs=-1) multi_target_forest.fit(X, …

3
วิธีการบังคับให้น้ำหนักไม่เป็นค่าลบในการถดถอยเชิงเส้น
ฉันใช้การถดถอยเชิงเส้นมาตรฐานโดยใช้ scikit เรียนรู้ในหลาม อย่างไรก็ตามฉันต้องการบังคับให้น้ำหนักเป็นค่าบวกสำหรับทุก ๆ คุณสมบัติ (ไม่เป็นลบ) มีวิธีใดบ้างที่ฉันจะบรรลุเป้าหมายดังกล่าวได้? ฉันกำลังดูในเอกสาร แต่ไม่สามารถหาวิธีที่จะทำให้สำเร็จ ฉันเข้าใจว่าฉันอาจจะไม่ได้ทางออกที่ดีที่สุด แต่ฉันต้องการน้ำหนักที่ไม่เป็นลบ

4
Scikit-learn: รับ SGDClassifier เพื่อทำนายเช่นเดียวกับ Logistic Regression
วิธีในการฝึกอบรม Logistic Regression คือการใช้การไล่ระดับสีแบบสุ่มสุ่มซึ่ง scikit-learn นำเสนออินเตอร์เฟส สิ่งที่ฉันต้องการจะทำคือการใช้ scikit การเรียนรู้ของSGDClassifierและมีมันคะแนนเช่นเดียวกับการถดถอยโลจิสติกที่นี่ อย่างไรก็ตามฉันต้องขาดการปรับปรุงการเรียนรู้ของเครื่องเนื่องจากคะแนนของฉันไม่เท่ากัน นี่คือรหัสปัจจุบันของฉัน ฉันขาดอะไรใน SGDClassifier ที่จะให้ผลลัพธ์เช่นเดียวกับ Logistic Regression from sklearn import datasets from sklearn.linear_model import LogisticRegression from sklearn.linear_model import SGDClassifier import numpy as np import pandas as pd from sklearn.cross_validation import KFold from sklearn.metrics import accuracy_score # Note that the iris dataset …

5
การคำนวณ KL Divergence ใน Python
ฉันค่อนข้างใหม่สำหรับสิ่งนี้และไม่สามารถพูดได้ว่าฉันมีความเข้าใจที่สมบูรณ์เกี่ยวกับแนวคิดทางทฤษฎีที่อยู่เบื้องหลังสิ่งนี้ ฉันกำลังพยายามคำนวณ KL Divergence ระหว่างรายการหลายจุดใน Python ฉันใช้http://scikit-learn.org/stable/modules/generated/sklearn.metrics.mutual_info_score.htmlเพื่อลองทำสิ่งนี้ ปัญหาที่ฉันพบคือค่าที่ส่งคืนนั้นเหมือนกันสำหรับ 2 หมายเลขรายการใด ๆ (1.3862943611198906) ฉันมีความรู้สึกว่าฉันทำผิดทางทฤษฎีบางอย่างที่นี่ แต่มองไม่เห็น values1 = [1.346112,1.337432,1.246655] values2 = [1.033836,1.082015,1.117323] metrics.mutual_info_score(values1,values2) นี่คือตัวอย่างของสิ่งที่ฉันกำลังทำงาน - เพียงแค่ฉันได้รับผลลัพธ์เดียวกันสำหรับ 2 อินพุทใด ๆ คำแนะนำใด ๆ / ความช่วยเหลือจะได้รับการชื่นชม!

2
ข้อผิดพลาด train_test_split (): พบตัวแปรอินพุตที่มีจำนวนตัวอย่างที่ไม่สอดคล้องกัน
ค่อนข้างใหม่สำหรับ Python แต่สร้างแบบจำลอง RF แรกของฉันขึ้นอยู่กับข้อมูลการจำแนกบางส่วน ฉันแปลงฉลากทั้งหมดให้เป็นข้อมูลตัวเลข int64 และโหลดลงใน X และ Y เป็นอาร์เรย์ที่มีจำนวนมาก แต่ฉันกดปุ่มข้อผิดพลาดเมื่อฉันพยายามฝึกนางแบบ นี่คือลักษณะของอาร์เรย์ของฉัน: >>> X = np.array([[df.tran_cityname, df.tran_signupos, df.tran_signupchannel, df.tran_vmake, df.tran_vmodel, df.tran_vyear]]) >>> Y = np.array(df['completed_trip_status'].values.tolist()) >>> X array([[[ 1, 1, 2, 3, 1, 1, 1, 1, 1, 3, 1, 3, 1, 1, 1, 1, 2, 1, 3, 1, …

3
StandardScaler ก่อนและหลังการแยกข้อมูล
เมื่อฉันกำลังอ่านเกี่ยวกับการใช้StandardScalerคำแนะนำส่วนใหญ่บอกว่าคุณควรใช้StandardScaler ก่อนที่จะแยกข้อมูลออกเป็นรถไฟ / ทดสอบ แต่เมื่อฉันตรวจสอบบางส่วนของรหัสโพสต์ออนไลน์ (โดยใช้ sklearn) มีการใช้หลักสองประการ 1- ใช้StandardScalerกับข้อมูลทั้งหมด เช่น from sklearn.preprocessing import StandardScaler sc = StandardScaler() X_fit = sc.fit(X) X_std = X_fit.transform(X) หรือ from sklearn.preprocessing import StandardScaler sc = StandardScaler() X = sc.fit(X) X = sc.transform(X) หรือเพียงแค่ from sklearn.preprocessing import StandardScaler sc = StandardScaler() X_std = sc.fit_transform(X) 2- …

2
จะรับค่า p-value และช่วงความมั่นใจใน LogisticRegression ด้วย sklearn ได้อย่างไร
ฉันกำลังสร้างการถดถอยโลจิสติกพหุนามด้วย sklearn (LogisticRegression) แต่หลังจากเสร็จสิ้นฉันจะได้รับค่า p และช่วงความมั่นใจของแบบจำลองของฉันได้อย่างไร ปรากฏว่า sklearn ให้ค่าสัมประสิทธิ์และดักเท่านั้น ขอบคุณมาก.

2
คุณสามารถอธิบายความแตกต่างระหว่าง SVC และ LinearSVC ใน scikit-Learn ได้หรือไม่?
ฉันเพิ่งเริ่มเรียนรู้ที่จะทำงานกับsklearnและเพิ่งเจอผลลัพธ์ที่แปลกประหลาดนี้ ฉันใช้digitsชุดข้อมูลที่มีอยู่sklearnเพื่อลองแบบจำลองต่างๆและวิธีการประมาณค่า เมื่อฉันทดสอบโมเดลเครื่อง Vector สนับสนุนบนข้อมูลฉันพบว่ามีสองคลาสที่แตกต่างกันsklearnสำหรับการจัดหมวดหมู่ SVM: SVCและLinearSVCที่ซึ่งอดีตใช้วิธีแบบหนึ่งต่อหนึ่งและอีกวิธีหนึ่งใช้กับวิธีส่วนที่เหลือ ฉันไม่รู้ว่าจะมีผลกระทบอะไรกับผลลัพธ์ดังนั้นฉันจึงลองทั้งสองอย่าง ฉันทำการประมาณสไตล์ Monte Carlo ที่ฉันวิ่งทั้งสองรุ่น 500 ครั้งแต่ละครั้งแบ่งตัวอย่างแบบสุ่มเป็นการฝึกอบรม 60% และทดสอบ 40% และคำนวณข้อผิดพลาดของการทำนายในชุดทดสอบ ตัวประมาณ SVC ปกติสร้างฮิสโตแกรมของข้อผิดพลาดต่อไปนี้: ในขณะที่ตัวประมาณ SVC เชิงเส้นสร้างฮิสโตแกรมต่อไปนี้: อะไรที่ทำให้เกิดความแตกต่างอย่างสิ้นเชิง? เหตุใดตัวแบบเชิงเส้นจึงมีความแม่นยำสูงขึ้นเกือบตลอดเวลา และที่เกี่ยวข้องอะไรที่อาจทำให้เกิดโพลาไรเซชันโดยสิ้นเชิงในผลลัพธ์ ทั้งความแม่นยำใกล้กับ 1 หรือความแม่นยำใกล้กับ 0 ไม่มีอะไรในระหว่าง สำหรับการเปรียบเทียบการจำแนกแผนภูมิการตัดสินใจทำให้เกิดอัตราการผิดพลาดแบบกระจายที่มากกว่าปกติด้วยความแม่นยำประมาณ 0.85
19 svm  scikit-learn 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.