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

ไลบรารีการเรียนรู้ของเครื่องสำหรับ Python ใช้แท็กนี้สำหรับคำถามในหัวข้อใด ๆ ที่ (a) เกี่ยวข้องกับ scikit- เรียนรู้ไม่ว่าจะเป็นส่วนที่สำคัญของคำถามหรือคำตอบที่คาดหวัง & (b) ไม่เพียงเกี่ยวกับวิธีการใช้ scikit เรียนรู้

3
XGBoost vs Python Sklearn ทำให้ต้นไม้ดีขึ้น
ฉันพยายามเข้าใจว่า XGBoost ทำงานอย่างไร ฉันเข้าใจอยู่แล้วว่าต้นไม้ที่ถูกไล่ระดับสีนั้นทำงานบน Python sklearn ได้อย่างไร สิ่งที่ไม่ชัดเจนสำหรับฉันคือถ้า XGBoost ทำงานในลักษณะเดียวกัน แต่เร็วกว่าหรือหากมีความแตกต่างพื้นฐานระหว่างมันกับการใช้งานของหลาม เมื่อฉันอ่านเอกสารนี้ http://learningsys.org/papers/LearningSys_2015_paper_32.pdf ฉันดูเหมือนว่าผลลัพธ์สุดท้ายที่ออกมาจาก XGboost จะเหมือนกับในการใช้งาน Python แต่ความแตกต่างที่สำคัญคือวิธีที่ XGboost พบว่าการแยกที่ดีที่สุดที่จะทำในต้นไม้การถดถอยแต่ละต้น โดยพื้นฐานแล้ว XGBoost ให้ผลลัพธ์เหมือนกัน แต่เร็วกว่า ถูกต้องหรือมีอย่างอื่นที่ฉันหายไปหรือไม่

2
ตัวชี้วัดการจำแนกหลายป้ายบน scikit
ฉันกำลังพยายามสร้างตัวแยกประเภทแบบหลายป้ายกำกับเพื่อกำหนดหัวข้อให้กับเอกสารที่มีอยู่โดยใช้ scikit ฉันกำลังประมวลผลเอกสารของฉันผ่านพวกเขาผ่านTfidfVectorizerป้ายผ่านที่MultiLabelBinarizerและสร้างOneVsRestClassifierด้วยการSGDClassifierเป็นประมาณการ อย่างไรก็ตามเมื่อทำการทดสอบลักษณนามของฉันฉันได้รับคะแนนสูงสุดเพียง. 29ซึ่งจากสิ่งที่ฉันได้อ่านนั้นค่อนข้างต่ำสำหรับปัญหาที่คล้ายกัน ฉันลองตัวเลือกหลายอย่างใน TfidfVectorizer เช่น stopwords, unigrams, stemming และไม่มีอะไรน่าจะเปลี่ยนผลลัพธ์ได้มากนัก ฉันยังเคยGridSearchCVได้รับพารามิเตอร์ที่ดีที่สุดสำหรับตัวประมาณของฉันและตอนนี้ฉันไม่มีแนวคิดว่าจะลองทำอะไรต่อไป ในเวลาเดียวกันจากสิ่งที่ฉันเข้าใจว่าฉันไม่สามารถใช้scikit.metricsกับOneVsRestClassifierดังนั้นฉันจะได้รับตัวชี้วัดบางอย่าง (F1, Precision, Recall และอื่น ๆ ) เพื่อหาว่ามีอะไรผิดปกติหรือไม่ อาจเป็นปัญหากับคลังข้อมูลของฉันหรือไม่ ปรับปรุง: ฉันยังพยายามใช้CountVectorizerและHashingVectorizerและวิธี pipeline พวกเขาไปTfidfTransformerแต่ผลที่มีลักษณะคล้ายกัน ดังนั้นฉันเดาว่าวิธีการแบบถุงคำกำลังทำดีที่สุดในโดเมนโทเค็นและส่วนที่เหลือขึ้นอยู่กับลักษณนาม ...

2
ป่าที่สุ่มขึ้นมามากเกินไป?
ฉันกำลังทดลองกับป่าสุ่มที่มี scikit เรียนรู้และฉันได้รับผลลัพธ์ที่ยอดเยี่ยมจากชุดการฝึกอบรมของฉัน แต่ผลลัพธ์ที่ได้ค่อนข้างแย่ในชุดการทดสอบของฉัน ... นี่คือปัญหา (ได้รับแรงบันดาลใจจากโป๊กเกอร์) ที่ฉันพยายามจะแก้ไข: เมื่อได้ไพ่ของผู้เล่น A, ไพ่ในหลุมของผู้เล่น B และไพ่ปัด (3 ใบ), ผู้เล่นคนไหนมีมือที่ดีที่สุด? ในทางคณิตศาสตร์นี่คือ 14 อินพุต (7 ใบ - หนึ่งอันดับและหนึ่งชุดสำหรับแต่ละคน) และหนึ่งเอาต์พุต (0 หรือ 1) นี่คือผลลัพธ์บางส่วนของฉัน: Training set size: 600k, test set size: 120k, number of trees: 25 Success rate in training set: 99.975% Success rate in testing …

3
วิธีการคำนวณข้อผิดพลาดมาตรฐานของสัมประสิทธิ์การถดถอยโลจิสติก
ฉันใช้ Scikit เรียนรู้ของ Python ในการฝึกอบรมและทดสอบการถดถอยโลจิสติก scikit-Learn จะส่งกลับค่าสัมประสิทธิ์การถดถอยของตัวแปรอิสระ แต่ไม่ได้ให้ข้อผิดพลาดมาตรฐานของสัมประสิทธิ์ ฉันต้องการข้อผิดพลาดมาตรฐานเหล่านี้เพื่อคำนวณสถิติ Wald สำหรับค่าสัมประสิทธิ์แต่ละค่าและเปรียบเทียบค่าสัมประสิทธิ์เหล่านี้กับแต่ละอื่น ๆ ฉันได้พบคำอธิบายวิธีการคำนวณข้อผิดพลาดมาตรฐานสำหรับค่าสัมประสิทธิ์ของการถดถอยโลจิสติก ( ที่นี่ ) แต่มันค่อนข้างยากที่จะติดตาม หากคุณรู้วิธีอธิบายง่ายๆเกี่ยวกับการคำนวณข้อผิดพลาดมาตรฐานเหล่านี้และ / หรือสามารถให้ข้อผิดพลาดมาตรฐานกับฉันได้ฉันขอขอบคุณจริงๆ! ฉันไม่ได้หมายถึงรหัสเฉพาะ (แต่โปรดโพสต์รหัสใด ๆ ที่อาจเป็นประโยชน์) แต่เป็นคำอธิบายอัลกอริทึมของขั้นตอนที่เกี่ยวข้อง

3
จะลบตัวแปร collinear ใน Python อย่างเป็นระบบได้อย่างไร [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับการตรวจสอบข้าม ปิดให้บริการใน2 ปีที่ผ่านมา ป่านนี้ฉันได้ลบตัวแปร collinear เป็นส่วนหนึ่งของกระบวนการเตรียมข้อมูลโดยดูที่ตารางสหสัมพันธ์และกำจัดตัวแปรที่อยู่เหนือขีด จำกัด ที่แน่นอน มีวิธีที่ยอมรับมากขึ้นในการทำเช่นนี้? นอกจากนี้ฉันทราบว่าการดูความสัมพันธ์ระหว่างตัวแปร 2 ตัวต่อครั้งนั้นไม่เหมาะการวัดเช่น VIF คำนึงถึงความสัมพันธ์ที่อาจเกิดขึ้นกับตัวแปรหลายตัว เราจะเลือกชุดค่าผสมของตัวแปรที่ไม่แสดงความหลากหลายทางชีวภาพได้อย่างไร ฉันมีข้อมูลของฉันภายในกรอบข้อมูลแพนด้าและฉันใช้โมเดลของ sklearn

3
ทำไมไม่ใช้ "สมการปกติ" เพื่อหาค่าสัมประสิทธิ์กำลังสองน้อยที่สุดอย่างง่าย?
ฉันเห็นรายการนี้ที่นี่และไม่อยากจะเชื่อว่ามีวิธีมากมายในการแก้ปัญหากำลังสองน้อยที่สุด "การสมปกติ" ในวิกิพีเดียดูเหมือนจะเป็นทางข้างหน้าค่อนข้างตรง: αα^β^=y¯−β^x¯,=∑ni=1(xi−x¯)(yi−y¯)∑ni=1(xi−x¯)2α^=y¯−β^x¯,β^=∑i=1n(xi−x¯)(yi−y¯)∑i=1n(xi−x¯)2 {\displaystyle {\begin{aligned}{\hat {\alpha }}&={\bar {y}}-{\hat {\beta }}\,{\bar {x}},\\{\hat {\beta }}&={\frac {\sum _{i=1}^{n}(x_{i}-{\bar {x}})(y_{i}-{\bar {y}})}{\sum _{i=1}^{n}(x_{i}-{\bar {x}})^{2}}}\end{aligned}}} ดังนั้นทำไมไม่ใช้เพียงแค่พวกเขา? ฉันสันนิษฐานว่าจะต้องมีปัญหาการคำนวณหรือความแม่นยำเนื่องจากในลิงค์แรกเหนือ Mark L. Stone กล่าวว่า SVD หรือ QR เป็นวิธีที่ได้รับความนิยมในซอฟต์แวร์ทางสถิติและสมการปกติคือ "TERRIBLE จากความน่าเชื่อถือและความแม่นยำเชิงตัวเลข" อย่างไรก็ตามในรหัสต่อไปนี้สมการปกติทำให้ฉันมีความแม่นยำถึง ~ 12 ตำแหน่งทศนิยมเมื่อเทียบกับสามฟังก์ชั่นหลามยอดนิยม: numpy polyfit ; SciPy ของlinregress ; และ scikit การเรียนรู้ของการถดถอยเชิงเส้น สิ่งที่น่าสนใจกว่าคือวิธีสมการปกตินั้นเร็วที่สุดเมื่อ n = 100000000 เวลาในการคำนวณสำหรับฉันคือ: …

3
วิธีรับพารามิเตอร์ไฮเปอร์ในการตรวจสอบข้ามซ้อน
ฉันได้อ่านโพสต์ต่อไปนี้สำหรับการตรวจสอบความถูกต้องไขว้แบบซ้อนกันและยังไม่แน่ใจ 100% ว่าฉันต้องทำอย่างไรกับการเลือกแบบจำลองที่มีการตรวจสอบความถูกต้องไขว้แบบซ้อน: การตรวจสอบความถูกต้องไขว้แบบซ้อนสำหรับการเลือกโมเดล การเลือกรุ่นและการตรวจสอบข้าม: วิธีการที่ถูกต้อง เพื่ออธิบายความสับสนให้ฉันลองเดินผ่านการเลือกรุ่นด้วยวิธีการตรวจสอบข้ามซ้อนขั้นตอน สร้างวง CV ด้านนอกด้วย K-Fold สิ่งนี้จะถูกใช้เพื่อประเมินประสิทธิภาพของพารามิเตอร์ไฮเปอร์ที่ "ชนะ" แต่ละ CV วงใน ใช้ GridSearchCV เพื่อสร้างวง CV ภายในที่ในแต่ละวงด้านใน GSCV จะผ่านชุดค่าผสมที่เป็นไปได้ทั้งหมดของพื้นที่พารามิเตอร์และมาพร้อมกับชุดพารามิเตอร์ที่ดีที่สุด หลังจาก GSCV พบพารามิเตอร์ที่ดีที่สุดในลูปด้านในมันจะถูกทดสอบด้วยชุดทดสอบในลูปด้านนอกเพื่อรับการประมาณค่าประสิทธิภาพ จากนั้นวงรอบนอกจะอัพเดทเป็นรอยพับถัดไปในขณะที่ชุดทดสอบและส่วนที่เหลือเป็นชุดฝึกซ้อมและ 1-3 ครั้ง พารามิเตอร์ "ที่ชนะ" ทั้งหมดที่เป็นไปได้คือจำนวนการพับที่กำหนดในลูปภายนอก ดังนั้นถ้าลูปด้านนอกเท่ากับ 5 เท่าคุณจะมีการประมาณประสิทธิภาพของอัลกอริทึมที่มีพารามิเตอร์ไฮเปอร์5 ชุดที่แตกต่างกันไม่ใช่ประสิทธิภาพของไฮเปอร์เซ็ตพารามิเตอร์หนึ่งชุด วิธีนี้แสดงให้เห็นในหน้าตัวอย่างของ SKLearn: http://scikit-learn.org/stable/auto_examples/model_selection/plot_nested_cross_validation_iris.html คำถาม: หลังจาก4.คุณจะทราบได้อย่างไรว่าพารามิเตอร์ไฮเปอร์ใดที่ทำงานได้ดีที่สุด? ฉันเข้าใจว่าคุณต้องการฝึกอัลกอริทึมของคุณ (เช่น Logistic Regression, Random Forest เป็นต้น) ด้วยชุดข้อมูล COMPLETE …

3
ตัวแปร Collinear ในการฝึกอบรม LDA หลายระดับ
ฉันฝึกอบรมลักษณนามหลายระดับ LDA กับ8 ชั้นเรียนของข้อมูล ขณะทำการฝึกซ้อมฉันได้รับคำเตือนว่า: " Variables are collinear " ฉันได้รับการฝึกอบรมมีความถูกต้องมากกว่า90% ฉันใช้ห้องสมุดscikits-LearnในPythonทำการฝึกอบรมและทดสอบข้อมูลหลายคลาส ฉันได้รับความแม่นยำในการทดสอบที่ดีเช่นกัน (ประมาณ85% -95% ) ฉันไม่เข้าใจว่าข้อผิดพลาด / คำเตือนหมายถึงอะไร กรุณาช่วยฉันออกไป.

6
การใช้ SVM ที่เร็วที่สุด
คำถามทั่วไปเพิ่มเติม ฉันใช้ rbf SVM สำหรับการสร้างแบบจำลองการคาดการณ์ ฉันคิดว่าโปรแกรมปัจจุบันของฉันต้องใช้เวลาเพิ่มขึ้นเล็กน้อย ฉันใช้ scikit เรียนรู้ด้วยการค้นหากริดแบบหยาบไปจนถึงแบบละเอียด + การตรวจสอบความถูกต้องไขว้ การวิ่ง SVM แต่ละครั้งใช้เวลาประมาณหนึ่งนาที แต่ด้วยการวนซ้ำทั้งหมดฉันยังพบว่ามันช้าเกินไป สมมติว่าในที่สุดฉันก็มีหลายเธรดส่วนการตรวจสอบความถูกต้องข้ามหลายคอร์คำแนะนำใด ๆ ในการเร่งความเร็วโปรแกรมของฉัน มีการใช้งาน SVM ที่เร็วขึ้นหรือไม่ ฉันเคยได้ยิน GPU SVM บางตัวแล้ว แต่ยังไม่ได้เจาะเข้าไปมากนัก ผู้ใช้คนใดและเร็วกว่ากันไหม

2
Scikit วิธีที่ถูกต้องในการปรับเทียบตัวแยกประเภทด้วย CalibratedClassifierCV
Scikit มีCalibratedClassifierCVซึ่งช่วยให้เราสามารถสอบเทียบโมเดลของเราในคู่ X, y ที่เฉพาะเจาะจง มันยังระบุไว้อย่างชัดเจนว่าdata for fitting the classifier and for calibrating it must be disjoint. หากพวกเขาจะต้องแยกจากกันมันถูกต้องหรือไม่ที่จะฝึกตัวจําแนก model = CalibratedClassifierCV(my_classifier) model.fit(X_train, y_train) ฉันกลัวว่าด้วยการใช้ชุดฝึกอบรมชุดเดียวกันฉันกำลังฝ่าฝืนdisjoint dataกฎ ทางเลือกอื่นอาจมีชุดการตรวจสอบความถูกต้อง my_classifier.fit(X_train, y_train) model = CalibratedClassifierCV(my_classifier, cv='prefit') model.fit(X_valid, y_valid) ซึ่งมีข้อเสียคือการทิ้งข้อมูลไว้เพื่อการฝึกอบรมน้อยลง นอกจากนี้หากCalibratedClassifierCVควรพอดีกับรุ่นที่พอดีกับชุดการฝึกอบรมที่แตกต่างกันเหตุใดจึงเป็นตัวเลือกเริ่มต้นcv=3ซึ่งจะพอดีกับตัวประมาณการพื้นฐาน การตรวจสอบความถูกต้องไขว้จัดการกฎความไม่ลงรอยกันด้วยตัวเองหรือไม่? คำถาม: วิธีที่ถูกต้องในการใช้ CalibratedClassifierCV คืออะไร?

3
ความแตกต่างระหว่าง statsmodel OLS และ scikit การถดถอยเชิงเส้น
ฉันมีคำถามเกี่ยวกับวิธีการที่แตกต่างกันสองวิธีจากห้องสมุดที่แตกต่างกันซึ่งดูเหมือนจะทำงานเดียวกัน ฉันกำลังพยายามสร้างแบบจำลองการถดถอยเชิงเส้น นี่คือรหัสที่ฉันใช้ห้องสมุด statsmodel กับ OLS: X_train, X_test, y_train, y_test = cross_validation.train_test_split(x, y, test_size=0.3, random_state=1) x_train = sm.add_constant(X_train) model = sm.OLS(y_train, x_train) results = model.fit() print "GFT + Wiki / GT R-squared", results.rsquared เอกสารนี้พิมพ์GFT + Wiki / GT R-squared 0.981434611923 และอันที่สองคือ scikit Learn library วิธีการโมเดลเชิงเส้น: model = LinearRegression() model.fit(X_train, y_train) …

2
ความแตกต่างระหว่างการเลือกคุณสมบัติตาม“ F ถดถอย” และขึ้นอยู่กับค่า ?
การเปรียบเทียบคุณสมบัติต่าง ๆ โดยใช้คุณลักษณะF-regressionเดียวกับการเชื่อมโยงคุณสมบัติกับฉลากแต่ละรายการและการสังเกตค่าหรือไม่R2R2R^2 ฉันมักจะเห็นเพื่อนร่วมงานของฉันใช้F regressionสำหรับการเลือกคุณสมบัติในการเรียนรู้ของเครื่องจากsklearn: sklearn.feature_selection.SelectKBest(score_func=sklearn.feature_selection.f_regression...)` บางคนบอกฉัน - ทำไมมันให้ผลลัพธ์เช่นเดียวกับที่สัมพันธ์กับตัวแปรฉลาก / depedendent? ข้อได้เปรียบของการใช้งานF_regressionในการเลือกคุณสมบัติ ไม่ชัดเจนสำหรับฉัน นี่คือรหัสของฉัน: ฉันใช้mtcarsชุดข้อมูลจากR: import pandas as pd import numpy as np from sklearn import feature_selection from sklearn.linear_model import LinearRegression #....load mtcars dataset into a pandas dataframe called "df", not shown here for conciseness # only using these numerical …

7
ฟอเรสต์แบบสุ่มมีมากเกินไป
ฉันกำลังพยายามใช้ Random Forest Regression ใน Scikits-Learn ปัญหาคือฉันได้รับข้อผิดพลาดการทดสอบที่สูงมาก: train MSE, 4.64, test MSE: 252.25. นี่คือลักษณะที่ข้อมูลของฉัน: (สีน้ำเงิน: ข้อมูลจริง, สีเขียว: คาดการณ์): ฉันใช้ 90% สำหรับการฝึกอบรมและ 10% สำหรับการทดสอบ นี่คือรหัสที่ฉันใช้หลังจากลองชุดพารามิเตอร์หลายชุด: rf = rf = RandomForestRegressor(n_estimators=10, max_features=2, max_depth=1000, min_samples_leaf=1, min_samples_split=2, n_jobs=-1) test_mse = mean_squared_error(y_test, rf.predict(X_test)) train_mse = mean_squared_error(y_train, rf.predict(X_train)) print("train MSE, %.4f, test MSE: %.4f" % (train_mse, …

3
การถดถอยโลจิสติก: Scikit Learn vs glmnet
ฉันพยายามทำซ้ำผลลัพธ์จากsklearnไลบรารีถดถอยโลจิสติกโดยใช้glmnetแพคเกจใน R จากเอกสารsklearnการถดถอยโลจิสติกพยายามลดฟังก์ชั่นค่าใช้จ่ายภายใต้บทลงโทษ l2 ขั้นต่ำw , c 1minw,c12wTw+C∑i=1Nlog(exp(−yi(XTiw + c ) ) + 1)minw,ค12wTW+คΣผม=1ยังไม่มีข้อความเข้าสู่ระบบ⁡(ประสบการณ์⁡(-Yผม(XผมTW+ค))+1)\min_{w,c} \frac12 w^Tw + C\sum_{i=1}^N \log(\exp(-y_i(X_i^Tw+c)) + 1) จากสะเปะสะปะของglmnetการดำเนินงานของฟังก์ชั่นช่วยลดค่าใช้จ่ายแตกต่างกันเล็กน้อย นาทีβ, β0- [ 1ยังไม่มีข้อความΣi = 1ยังไม่มีข้อความYผม( β0+ xTผมβ) - บันทึก( 1 + e( β0+ xTผมβ)) ] + λ [ ( α - 1 ) | | β| |22/ …

3
วิธีการแก้ไขปัญหาข้อมูลขาดหายไปในการเรียนรู้ของเครื่อง
ฐานข้อมูลใด ๆ ที่เราต้องการทำนายโดยใช้อัลกอริทึมการเรียนรู้ของเครื่องจะค้นหาค่าที่ขาดหายไปสำหรับคุณลักษณะบางอย่าง มีหลายวิธีในการแก้ไขปัญหานี้เพื่อแยกบรรทัดที่มีค่าหายไปจนกว่าพวกเขาจะเติมค่าเฉลี่ยของลักษณะ ฉันต้องการใช้สำหรับวิธีที่ค่อนข้างแข็งแกร่งซึ่งโดยทั่วไปจะเรียกใช้การถดถอย (หรือวิธีอื่น) ซึ่งตัวแปรตาม (Y) จะเป็นคอลัมน์แต่ละคอลัมน์ที่มีค่าที่หายไป แต่มีเฉพาะแถวของตาราง ที่มีข้อมูลทั้งหมดและทำนายค่าที่ขาดหายไปด้วยวิธีนี้ให้ทำตารางตามตารางและย้ายไปยัง 'คอลัมน์' ถัดไปด้วยค่าที่หายไปและทำซ้ำวิธีจนกว่าทุกอย่างจะเต็ม แต่นั่นทำให้ฉันสงสัย ทำไมคอลัมน์เริ่มต้น ฉันเชื่อว่าคนที่มีค่าที่น้อยที่สุดจะหายไปจนกว่าคนที่มีค่ามากที่สุด มีเกณฑ์ของค่าที่หายไปที่ไม่คุ้มค่าหรือไม่ที่จะพยายามทำให้เสร็จ (ตัวอย่างเช่นหากคุณลักษณะนี้มีเพียง 10% ของค่าที่เติมจะไม่น่าสนใจที่จะยกเว้น) มีการนำไปใช้ในแพคเกจแบบดั้งเดิมหรือวิธีการอื่นที่ทนทานต่อการขาดหรือไม่

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