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

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

1
วิธีการแยกชุดข้อมูลสำหรับการตรวจสอบข้ามการเรียนรู้และการประเมินขั้นสุดท้าย?
กลยุทธ์ที่เหมาะสมสำหรับการแยกชุดข้อมูลคืออะไร? ผมขอให้ความคิดเห็นเกี่ยวกับวิธีการดังต่อไปนี้ (ไม่ได้อยู่ในแต่ละพารามิเตอร์เหมือนtest_sizeหรือn_iterแต่ถ้าผมใช้X, y, X_train, y_train, X_testและy_testเหมาะสมและถ้าลำดับทำให้รู้สึก): (ขยายตัวอย่างนี้จากเอกสาร scikit-Learn) 1. โหลดชุดข้อมูล from sklearn.datasets import load_digits digits = load_digits() X, y = digits.data, digits.target 2. แบ่งออกเป็นชุดฝึกอบรมและทดสอบ (เช่น 80/20) from sklearn.cross_validation import train_test_split X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0) 3. เลือกเครื่องมือประมาณ from sklearn.svm import SVC estimator = SVC(kernel='linear') 4. …

1
การเข้ารหัสดัมมี่เทียบกับหนึ่งใน Scikit เรียนรู้
มีวิธีการเข้ารหัสตัวแปรเด็ดขาดสองวิธี กล่าวว่าหนึ่งตัวแปรเด็ดขาดมีค่าn การเข้ารหัสแบบ one-hotจะแปลงเป็นตัวแปรnในขณะที่การเข้ารหัสแบบจำลองจะแปลงเป็นตัวแปรn-1 ถ้าเรามีตัวแปรเด็ดขาดkแต่ละตัวมีค่าn การเข้ารหัสฮอตหนึ่งจบลงด้วยตัวแปรknในขณะที่การเข้ารหัสดัมมี่ลงท้ายด้วยตัวแปรkn-k ฉันได้ยินมาว่าสำหรับการเข้ารหัสที่ร้อนแรงเพียงครั้งเดียวการสกัดกั้นอาจนำไปสู่ปัญหา collinearity ซึ่งทำให้ตัวแบบไม่ดัง บางคนเรียกมันว่า " กับดักตัวแปรจำลอง " คำถามของฉัน: โมเดลการถดถอยเชิงเส้นของ Scikit-Learn ช่วยให้ผู้ใช้ปิดใช้งานการสกัดกั้น ดังนั้นสำหรับการเข้ารหัสที่ร้อนแรงฉันควรตั้งค่า fit_intercept = False เสมอหรือไม่ สำหรับการเข้ารหัสแบบสุ่มควรตั้งค่า fit_intercept เป็น True หรือไม่ ฉันไม่เห็น "คำเตือน" บนเว็บไซต์ เนื่องจากการเข้ารหัสแบบร้อนแรงสร้างตัวแปรมากขึ้นมันมีระดับความอิสระมากกว่าการเข้ารหัสแบบจำลองหรือไม่?

5
เราตีความน้ำหนักของคุณสมบัติ SVM อย่างไร
ฉันกำลังพยายามตีความน้ำหนักของตัวแปรที่กำหนดโดยการปรับ SVM เชิงเส้นให้เหมาะสม (ฉันใช้Scikit เรียนรู้ ): from sklearn import svm svm = svm.SVC(kernel='linear') svm.fit(features, labels) svm.coef_ ฉันไม่พบสิ่งใดในเอกสารที่ระบุวิธีการคำนวณหรือตีความน้ำหนักเหล่านี้โดยเฉพาะ เครื่องหมายของน้ำหนักมีส่วนร่วมกับชั้นเรียนหรือไม่?

2
นุ่น / Statsmodel / Scikit เรียนรู้
Pandas, Statsmodels และ Scikit เรียนรู้การใช้งานที่แตกต่างกันของการเรียนรู้ด้วยเครื่องจักร / การดำเนินการทางสถิติหรือเป็นส่วนเสริมเหล่านี้หรือไม่? ข้อใดต่อไปนี้มีฟังก์ชันการทำงานที่ครอบคลุมที่สุด สิ่งใดที่ได้รับการพัฒนาและ / หรือสนับสนุนอย่างแข็งขัน ฉันต้องใช้การถดถอยโลจิสติก ข้อเสนอแนะใดที่ฉันควรใช้กับสิ่งเหล่านี้?

2
การถดถอยโลจิสติก: Scikit Learn vs Statsmodels
ฉันพยายามที่จะเข้าใจว่าทำไมผลลัพธ์จากการถดถอยโลจิสติกส์ของห้องสมุดทั้งสองนี้จึงให้ผลลัพธ์ที่แตกต่างกัน ฉันใช้ชุดข้อมูลจาก UCLA Idre กวดวิชาทำนายadmitบนพื้นฐานgre, และgpa ถูกใช้เป็นตัวแปรเด็ดขาดดังนั้นจึงถูกแปลงเป็นตัวแปรดัมมีการดร็อป คอลัมน์ดักจะถูกเพิ่มด้วยrankrankrank_1 df = pd.read_csv("https://stats.idre.ucla.edu/stat/data/binary.csv") y, X = dmatrices('admit ~ gre + gpa + C(rank)', df, return_type = 'dataframe') X.head() > Intercept C(rank)[T.2] C(rank)[T.3] C(rank)[T.4] gre gpa 0 1 0 1 0 380 3.61 1 1 0 1 0 660 3.67 2 1 0 …

3
การถดถอยพหุนามใช้ scikit เรียนรู้
ฉันพยายามใช้ scikit เรียนรู้สำหรับการถดถอยพหุนาม จากสิ่งที่ฉันอ่านการถดถอยพหุนามเป็นกรณีพิเศษของการถดถอยเชิงเส้น ฉันกำลังกระโดดนั่นอาจเป็นหนึ่งในโมเดลเชิงเส้นทั่วไปของ scikit สามารถกำหนดพารามิเตอร์เพื่อให้พอดีกับชื่อพหุนามคำสั่งที่สูงขึ้น แต่ฉันไม่เห็นตัวเลือกสำหรับการทำเช่นนั้น ฉันจัดการเพื่อใช้ Support Vector Regressor กับ poly kernel ซึ่งทำงานได้ดีกับชุดย่อยของข้อมูลของฉัน แต่ใช้เวลานานมากในการพอดีกับชุดข้อมูลที่มีขนาดใหญ่กว่าดังนั้นฉันยังต้องการค้นหาบางสิ่งได้เร็วขึ้น (แม้ว่าการซื้อขายจะมีความแม่นยำ) ฉันขาดอะไรบางอย่างชัดเจนที่นี่?

1
ตัวเลขในรายงานการจำแนกประเภทของ sklearn หมายถึงอะไร
ฉันมีตัวอย่างด้านล่างที่ดึงมาจากเอกสาร sklearn.metrics.classification_report ของ sklearn สิ่งที่ฉันไม่เข้าใจคือเหตุผลที่มีค่า f1 คะแนนความแม่นยำและการเรียกคืนค่าสำหรับแต่ละชั้นที่ฉันเชื่อว่าระดับเป็นป้ายตัวทำนาย? ฉันคิดว่าคะแนน f1 บอกคุณถึงความแม่นยำโดยรวมของโมเดล นอกจากนี้คอลัมน์สนับสนุนบอกอะไรเรา ฉันไม่พบข้อมูลใด ๆ print(classification_report(y_true, y_pred, target_names=target_names)) precision recall f1-score support class 0 0.50 1.00 0.67 1 class 1 0.00 0.00 0.00 1 class 2 1.00 0.67 0.80 3 avg / total 0.70 0.60 0.61 5

1
องศาอิสระเป็นหมายเลขที่ไม่ใช่จำนวนเต็มหรือไม่
เมื่อฉันใช้ GAM มันให้ DF ที่เหลือกับฉันคือ (บรรทัดสุดท้ายในรหัส) นั่นหมายความว่าอย่างไร? นอกเหนือไปจากตัวอย่างของ GAM โดยทั่วไปแล้วจำนวนองศาความเป็นอิสระจะเป็นจำนวนที่ไม่ใช่จำนวนเต็มหรือไม่26.626.626.6 > library(gam) > summary(gam(mpg~lo(wt),data=mtcars)) Call: gam(formula = mpg ~ lo(wt), data = mtcars) Deviance Residuals: Min 1Q Median 3Q Max -4.1470 -1.6217 -0.8971 1.2445 6.0516 (Dispersion Parameter for gaussian family taken to be 6.6717) Null Deviance: 1126.047 on 31 degrees …
27 r  degrees-of-freedom  gam  machine-learning  pca  lasso  probability  self-study  bootstrap  expected-value  regression  machine-learning  linear-model  probability  simulation  random-generation  machine-learning  distributions  svm  libsvm  classification  pca  multivariate-analysis  feature-selection  archaeology  r  regression  dataset  simulation  r  regression  time-series  forecasting  predictive-models  r  mean  sem  lavaan  machine-learning  regularization  regression  conv-neural-network  convolution  classification  deep-learning  conv-neural-network  regression  categorical-data  econometrics  r  confirmatory-factor  scale-invariance  self-study  unbiased-estimator  mse  regression  residuals  sampling  random-variable  sample  probability  random-variable  convergence  r  survival  weibull  references  autocorrelation  hypothesis-testing  distributions  correlation  regression  statistical-significance  regression-coefficients  univariate  categorical-data  chi-squared  regression  machine-learning  multiple-regression  categorical-data  linear-model  pca  factor-analysis  factor-rotation  classification  scikit-learn  logistic  p-value  regression  panel-data  multilevel-analysis  variance  bootstrap  bias  probability  r  distributions  interquartile  time-series  hypothesis-testing  normal-distribution  normality-assumption  kurtosis  arima  panel-data  stata  clustered-standard-errors  machine-learning  optimization  lasso  multivariate-analysis  ancova  machine-learning  cross-validation 

2
พื้นที่ภายใต้ Precision-Recall Curve (AUC ของ PR-curve) และ Average Precision (AP)
Average Precision (AP) เป็นพื้นที่ภายใต้ Precision-Recall Curve (AUC ของ PR-curve) หรือไม่ แก้ไข: นี่คือความคิดเห็นเกี่ยวกับความแตกต่างใน PR AUC และ AP AUC นั้นได้มาจากการประมาณค่าความแม่นยำสี่เหลี่ยมคางหมู อีกทางเลือกหนึ่งและมักจะเทียบเท่ากับตัวชี้วัดคือ Average Precision (AP) ซึ่งส่งคืนเป็น info.ap นี่คือค่าเฉลี่ยของความแม่นยำที่ได้รับทุกครั้งที่มีการเรียกคืนตัวอย่างบวกใหม่ มันเป็นเช่นเดียวกับ AUC หากความแม่นยำถูกแก้ไขโดยส่วนคงที่และเป็นคำจำกัดความที่ใช้โดย TREC บ่อยที่สุด http://www.vlfeat.org/overview/plots-rank.html นอกจากนี้ผลลัพธ์ aucและaverage_precision_scoreไม่เหมือนกันใน scikit-Learn นี่เป็นเรื่องแปลกเพราะในเอกสารที่เรามี: คำนวณความแม่นยำเฉลี่ย (AP) จากคะแนนการทำนายคะแนนนี้สอดคล้องกับพื้นที่ใต้กราฟความแม่นยำในการจำ นี่คือรหัส: # Compute Precision-Recall and plot curve precision, recall, thresholds = precision_recall_curve(y_test, …

4
ชุดของ regressors ชนิดต่าง ๆ โดยใช้ scikit-Learn (หรือโครงร่างหลามอื่น ๆ )
ฉันพยายามที่จะแก้ปัญหาการถดถอย ฉันพบว่า 3 รุ่นทำงานได้ดีกับชุดย่อยของข้อมูลที่แตกต่างกัน: LassoLARS, SVR และการไล่ระดับต้นไม้แบบไล่ระดับ ฉันสังเกตเห็นว่าเมื่อฉันทำการทำนายโดยใช้ทั้ง 3 โมเดลจากนั้นสร้างตารางของ 'เอาท์พุทที่แท้จริง' และเอาท์พุทของโมเดล 3 ของฉันฉันเห็นว่าในแต่ละครั้งที่อย่างน้อยหนึ่งโมเดลนั้นใกล้เคียงกับเอาต์พุตจริง อาจอยู่ค่อนข้างไกล เมื่อฉันคำนวณข้อผิดพลาดน้อยที่สุดที่เป็นไปได้ (ถ้าฉันใช้การทำนายจากตัวทำนายที่ดีที่สุดสำหรับแต่ละตัวอย่างการทดสอบ) ฉันได้รับข้อผิดพลาดซึ่งเล็กกว่าข้อผิดพลาดของแบบจำลองใด ๆ เพียงอย่างเดียว ดังนั้นฉันจึงคิดว่าจะพยายามรวมการทำนายจากแบบจำลองต่าง ๆ ทั้งสามนี้เข้าด้วยกันเป็นชุด คำถามคือทำอย่างไรให้ถูกต้อง? โมเดล 3 แบบของฉันทั้งหมดได้รับการสร้างและปรับแต่งโดยใช้ Scikit-Learn มันมีวิธีการบางอย่างที่สามารถใช้ในการแพ็คแบบจำลองเป็นชุดหรือไม่? ปัญหาตรงนี้คือฉันไม่ต้องการเพียงแค่การคาดคะเนค่าเฉลี่ยจากทั้งสามรุ่นฉันต้องการทำสิ่งนี้ด้วยการถ่วงน้ำหนักซึ่งควรกำหนดน้ำหนักตามคุณสมบัติของตัวอย่างเฉพาะ แม้ว่า Scikit-Learn จะไม่ได้มีฟังก์ชั่นดังกล่าว แต่มันก็ดีถ้ามีคนรู้วิธีที่จะจัดการกับงานนี้ - การหาน้ำหนักของแต่ละรุ่นสำหรับแต่ละตัวอย่างในข้อมูล ฉันคิดว่ามันอาจจะทำได้โดย regressor แยกต่างหากที่สร้างไว้ด้านบนของทั้งสามรุ่นซึ่งจะลองใช้น้ำหนักที่เหมาะสมที่สุดสำหรับแต่ละรุ่น 3 รุ่น แต่ฉันไม่แน่ใจว่านี่เป็นวิธีที่ดีที่สุดในการทำสิ่งนี้หรือไม่

2
ทำไม LIK ของ Scikit-Learn LDA จึงทำงานไม่ถูกต้องและมันคำนวณ LDA ผ่าน SVD ได้อย่างไร
ฉันใช้การวิเคราะห์เชิงเส้นตรง (LDA) จากไลบรารี่การscikit-learnเรียนรู้ของเครื่องจักร (Python) สำหรับการลดมิติข้อมูลและอยากรู้เกี่ยวกับผลลัพธ์เล็กน้อย ฉันสงสัยว่าตอนนี้สิ่งที่ LDA scikit-learnกำลังทำอยู่เพื่อให้ผลลัพธ์ดูแตกต่างจากเช่นวิธีการด้วยตนเองหรือ LDA ที่ทำใน R มันจะดีถ้ามีใครให้ข้อมูลเชิงลึกที่นี่ สิ่งที่สำคัญที่สุดคือการscikit-plotแสดงให้เห็นถึงความสัมพันธ์ระหว่างตัวแปรสองตัวที่ควรมีความสัมพันธ์ 0 สำหรับการทดสอบฉันใช้ชุดข้อมูลของ Iris และตัวจำแนกเชิงเส้น 2 ตัวแรกมีลักษณะดังนี้: IMG-1 LDA ผ่าน scikit เรียนรู้ สิ่งนี้สอดคล้องกับผลลัพธ์ที่พบในเอกสาร scikit-Learn ที่นี่ ตอนนี้ฉันผ่าน LDA ทีละขั้นตอนและได้ประมาณการที่แตกต่างกัน ฉันลองวิธีที่แตกต่างกันเพื่อค้นหาว่าเกิดอะไรขึ้น: IMG-2 LDA บนข้อมูลดิบ (ไม่มีการจัดกึ่งกลางไม่มีมาตรฐาน) และนี่คือแนวทางทีละขั้นตอนถ้าฉันสร้างมาตรฐาน (การทำให้เป็นมาตรฐาน z-score; ความแปรปรวนของหน่วย) ข้อมูลก่อน ฉันทำสิ่งเดียวกันโดยมีค่าเฉลี่ยอยู่กึ่งกลางเท่านั้นซึ่งควรนำไปสู่ภาพการฉายภาพแบบเดียวกัน (และสิ่งที่มันทำ) IMG-3 LDA ทีละขั้นตอนหลังจากการกำหนดค่าเฉลี่ยกึ่งกลางหรือกำหนดมาตรฐาน IMG-4 LDA ใน R (การตั้งค่าเริ่มต้น) …

2
ค่าเฉลี่ยเปอร์เซ็นต์ความผิดพลาด (MAPE) ใน Scikit-Learn [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามดังนั้นจึงเป็นหัวข้อสำหรับการตรวจสอบข้าม ปิดให้บริการใน2 ปีที่ผ่านมา เราจะคำนวณค่าเฉลี่ยเปอร์เซ็นต์ความผิดพลาด (MAPE) ของการคาดคะเนของเราโดยใช้ Python และ scikit-Learn ได้อย่างไร จากเอกสารเรามีเพียง 4 ฟังก์ชันเมตริกสำหรับการถดถอยเท่านั้น: metrics.explained_variance_score (y_true, y_pred) metrics.mean_absolute_error (y_true, y_pred) metrics.mean_squared_error (y_true, y_pred) metrics.r2_score (y_true, y_pred)

5
มากเกินไป: ไม่มีกระสุนเงิน?
ความเข้าใจของฉันคือว่าแม้เมื่อไปข้ามการตรวจสอบและการเลือกรูปแบบวิธีการที่เหมาะสม, overfitting จะเกิดขึ้นถ้าค้นหาหนึ่งสำหรับรูปแบบที่ยากพอว่าถ้าผู้ใดมีข้อ จำกัด เรียกเก็บกับความซับซ้อนของโมเดลระยะเวลา นอกจากนี้บ่อยครั้งที่ผู้คนพยายามเรียนรู้บทลงโทษเกี่ยวกับความซับซ้อนของแบบจำลองจากข้อมูลที่ทำลายการป้องกันที่พวกเขาสามารถให้ได้ คำถามของฉันคือ: ความจริงเท่าไหร่ที่มีต่องบข้างต้น? ผมมักจะได้ยิน practicioners ML กล่าวว่า " ใน บริษัท ของฉัน / ห้องปฏิบัติการเราพยายามทุกรูปแบบที่มีอยู่ (เช่นจากห้องสมุดเช่นเครื่องหมายหรือscikit เรียนรู้ ) เพื่อดูที่หนึ่งงานที่ดีที่สุด " ฉันมักจะเถียงว่าวิธีการนี้สามารถทำให้ได้อย่างง่ายดายแม้ว่าพวกเขาจะจริงจังเกี่ยวกับการตรวจสอบข้ามและเก็บชุดที่ค้างไว้ในทางที่พวกเขาต้องการ ยิ่งพวกเขาค้นหายากเท่าไหร่ก็จะยิ่งมีโอกาสมากขึ้นเท่านั้น ในคำอื่น ๆมากกว่าการเพิ่มประสิทธิภาพเป็นปัญหาที่แท้จริงและมีการวิเคราะห์พฤติกรรมที่ไม่สามารถช่วยให้คุณต่อสู้กับมันอย่างเป็นระบบ ฉันผิดที่คิดแบบนี้?

2
PCA แบบ numpy และ sklearn ให้ผลลัพธ์ที่ต่างกัน
ฉันเข้าใจผิดบางอย่าง นี่คือรหัสของฉัน ใช้ sklearn import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D from sklearn import decomposition from sklearn import datasets from sklearn.preprocessing import StandardScaler pca = decomposition.PCA(n_components=3) x = np.array([ [0.387,4878, 5.42], [0.723,12104,5.25], [1,12756,5.52], [1.524,6787,3.94], ]) pca.fit_transform(x) เอาท์พุท: array([[ -4.25324997e+03, -8.41288672e-01, -8.37858943e-03], [ 2.97275001e+03, -1.25977271e-01, 1.82476780e-01], …

2
วิธีการใช้ฟังก์ชั่นการตรวจสอบความถูกต้องข้ามของ Scikit-Learn กับตัวแยกประเภทหลายฉลาก
ผมทดสอบลักษณนามแตกต่างกันในชุดข้อมูลที่มี 5 ชั้นเรียนและเช่นกันสามารถอยู่ในหนึ่งหรือมากกว่าหนึ่งของการเรียนเหล่านี้ดังนั้นฉันใช้ scikit sklearn.multiclass.OneVsRestClassifierการเรียนรู้ของลักษณนามหลายป้ายโดยเฉพาะ sklearn.cross_validation.StratifiedKFoldตอนนี้ผมต้องการที่จะดำเนินการตรวจสอบข้ามใช้ สิ่งนี้ทำให้เกิดข้อผิดพลาดดังต่อไปนี้: Traceback (most recent call last): File "mlfromcsv.py", line 93, in <module> main() File "mlfromcsv.py", line 77, in main test_classifier_multilabel(svm.LinearSVC(), X, Y, 'Linear Support Vector Machine') File "mlfromcsv.py", line 44, in test_classifier_multilabel scores = cross_validation.cross_val_score(clf_ml, X, Y_list, cv=cv, score_func=metrics.precision_recall_fscore_support, n_jobs=jobs) File "/usr/lib/pymodules/python2.7/sklearn/cross_validation.py", line 1046, …

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