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

scikit-learn เป็นไลบรารีการเรียนรู้ของเครื่องสำหรับ Python ที่มีเครื่องมือที่เรียบง่ายและมีประสิทธิภาพสำหรับการวิเคราะห์ข้อมูลและการขุดข้อมูลโดยเน้นที่การเรียนรู้ของเครื่อง ทุกคนสามารถเข้าถึงได้และนำกลับมาใช้ใหม่ได้ในบริบทต่างๆ สร้างขึ้นจาก NumPy และ SciPy โครงการนี้เป็นโอเพ่นซอร์สและใช้งานได้ในเชิงพาณิชย์ (ใบอนุญาต BSD)

8
คอลัมน์เวกเตอร์ y ถูกส่งผ่านเมื่อคาดว่าอาร์เรย์ 1d
ฉันต้องพอดีRandomForestRegressorจากsklearn.ensemble. forest = ensemble.RandomForestRegressor(**RF_tuned_parameters) model = forest.fit(train_fold, train_y) yhat = model.predict(test_fold) รหัสนี้ใช้งานได้ตลอดจนกระทั่งฉันทำการประมวลผลข้อมูลล่วงหน้า ( train_y) ข้อความแสดงข้อผิดพลาดระบุว่า: DataConversionWarning: คอลัมน์เวกเตอร์ y ถูกส่งผ่านเมื่อคาดว่าอาร์เรย์ 1d โปรดเปลี่ยนรูปร่างของ y เป็น (n_samples,) เช่นใช้ ravel () รุ่น = forest.fit (train_fold, train_y) ก่อนหน้าtrain_yนี้เป็นซีรี่ส์ตอนนี้เป็นอาร์เรย์จำนวนนับ (เป็นคอลัมน์เวกเตอร์) ถ้าฉันใช้train_y.ravel()มันจะกลายเป็นเวกเตอร์แถวและไม่มีข้อความแสดงข้อผิดพลาดปรากฏขึ้นผ่านขั้นตอนการคาดคะเนใช้เวลานานมาก (จริง ๆ แล้วมันจะไม่เสร็จสิ้น ... ) ในเอกสารของRandomForestRegressorฉันพบว่าtrain_yควรกำหนดเป็นy : array-like, shape = [n_samples] or [n_samples, n_outputs] ความคิดใด …

3
Python - sklearn.pipeline.Pipeline คืออะไร?
ฉันคิดไม่ออกว่ามันsklearn.pipeline.Pipelineทำงานอย่างไร มีคำอธิบายที่ไม่กี่คนในที่มีเอกสาร ตัวอย่างเช่นพวกเขาหมายถึงอะไร: ท่อส่งของการแปลงด้วยตัวประมาณค่าสุดท้าย เพื่อให้คำถามของฉันชัดเจนขึ้นมีstepsอะไรบ้าง? พวกเขาทำงานอย่างไร? แก้ไข ขอบคุณสำหรับคำตอบที่ทำให้คำถามของฉันชัดเจนขึ้น: เมื่อฉันเรียกไปป์ไลน์และผ่านเป็นขั้นตอนหม้อแปลงสองตัวและตัวประมาณหนึ่งตัวเช่น: pipln = Pipeline([("trsfm1",transformer_1), ("trsfm2",transformer_2), ("estmtr",estimator)]) จะเกิดอะไรขึ้นเมื่อฉันเรียกสิ่งนี้ pipln.fit() OR pipln.fit_transform() ฉันคิดไม่ออกว่าตัวประมาณจะเป็นหม้อแปลงได้อย่างไรและจะติดตั้งหม้อแปลงได้อย่างไร

7
อะไรคือความแตกต่างระหว่าง 'transform' และ 'fit_transform' ใน sklearn
ในกล่องเครื่องมือ sklearn-python มีสองฟังก์ชันtransformและfit_transformเกี่ยวกับsklearn.decomposition.RandomizedPCA. คำอธิบายของสองฟังก์ชันมีดังต่อไปนี้ แต่อะไรคือความแตกต่างระหว่างพวกเขา?

13
ImportError ในการนำเข้าจาก sklearn: ไม่สามารถอิมพอร์ตชื่อ check_build
ฉันได้รับข้อผิดพลาดต่อไปนี้ขณะพยายามนำเข้าจาก sklearn: >>> from sklearn import svm Traceback (most recent call last): File "<pyshell#17>", line 1, in <module> from sklearn import svm File "C:\Python27\lib\site-packages\sklearn\__init__.py", line 16, in <module> from . import check_build ImportError: cannot import name check_build ฉันใช้ python 2.7, scipy-0.12.0b1 superpack, numpy-1.6.0 superpack, scikit-learn-0.11 ฉันมีเครื่อง windows 7 ฉันได้ตรวจสอบคำตอบหลายข้อสำหรับปัญหานี้ แต่ไม่มีคำตอบใดให้ทางออกจากข้อผิดพลาดนี้


2
พารามิเตอร์ class_weight ใน scikit-learn ทำงานอย่างไร
ฉันมีปัญหามากในการทำความเข้าใจว่าclass_weightพารามิเตอร์ใน Logistic Regression ของ scikit-learn ทำงานอย่างไร สถานการณ์ ฉันต้องการใช้การถดถอยโลจิสติกเพื่อทำการจำแนกไบนารีในชุดข้อมูลที่ไม่สมดุลมาก ชั้นเรียนมีข้อความว่า 0 (ลบ) และ 1 (บวก) และข้อมูลที่สังเกตได้อยู่ในอัตราส่วนประมาณ 19: 1 โดยกลุ่มตัวอย่างส่วนใหญ่มีผลลบ ความพยายามครั้งแรก: เตรียมข้อมูลการฝึกอบรมด้วยตนเอง ฉันแบ่งข้อมูลที่ฉันมีเป็นชุดที่ไม่ปะติดปะต่อสำหรับการฝึกอบรมและการทดสอบ (ประมาณ 80/20) จากนั้นฉันสุ่มตัวอย่างข้อมูลการฝึกด้วยมือเพื่อรับข้อมูลการฝึกอบรมในสัดส่วนที่แตกต่างจาก 19: 1; ตั้งแต่ 2: 1 -> 16: 1 จากนั้นฉันได้ฝึกการถดถอยโลจิสติกในชุดย่อยข้อมูลการฝึกอบรมที่แตกต่างกันเหล่านี้และการเรียกคืนแบบพล็อต (= TP / (TP + FN)) เป็นฟังก์ชันของสัดส่วนการฝึกที่แตกต่างกัน แน่นอนว่าการเรียกคืนนั้นคำนวณจากตัวอย่างการทดสอบที่ไม่ปะติดปะต่อซึ่งมีสัดส่วนที่สังเกตได้เท่ากับ 19: 1 หมายเหตุแม้ว่าฉันจะฝึกโมเดลที่แตกต่างกันในข้อมูลการฝึกอบรมที่แตกต่างกันฉันก็คำนวณการเรียกคืนสำหรับทุกคนในข้อมูลการทดสอบ (ไม่ปะติดปะต่อ) เดียวกัน ผลลัพธ์เป็นไปตามที่คาดไว้: การเรียกคืนประมาณ 60% ที่สัดส่วนการฝึก …


5
เรียกใช้การถดถอย OLS ด้วย Pandas Data Frame
ฉันมีpandasกรอบข้อมูลและต้องการทำนายค่าของคอลัมน์ A จากค่าในคอลัมน์ B และ C นี่คือตัวอย่างของเล่น: import pandas as pd df = pd.DataFrame({"A": [10,20,30,40,50], "B": [20, 30, 10, 40, 50], "C": [32, 234, 23, 23, 42523]}) ตามหลักการแล้วฉันจะมีบางอย่างที่คล้ายกันols(A ~ B + C, data = df)แต่เมื่อฉันดูตัวอย่างจากไลบรารีอัลกอริทึมscikit-learnดูเหมือนว่าจะฟีดข้อมูลไปยังโมเดลด้วยรายการแถวแทนที่จะเป็นคอลัมน์ สิ่งนี้ทำให้ฉันต้องฟอร์แมตข้อมูลใหม่เป็นรายการภายในลิสต์ซึ่งดูเหมือนจะเอาชนะจุดประสงค์ของการใช้แพนด้าตั้งแต่แรก วิธีใดที่เป็นวิธี pythonic ที่สุดในการเรียกใช้การถดถอย OLS (หรืออัลกอริธึมการเรียนรู้ของเครื่องโดยทั่วไป) กับข้อมูลในกรอบข้อมูลแพนด้า

4
วิธีคำนวณความแม่นยำการเรียกคืนความแม่นยำและคะแนน f1 สำหรับกรณีหลายคลาสด้วย scikit Learn
ฉันกำลังทำงานในปัญหาการวิเคราะห์ความรู้สึกข้อมูลมีลักษณะดังนี้: label instances 5 1190 4 838 3 239 1 204 2 127 ดังนั้นข้อมูลของฉันจะไม่สมดุลตั้งแต่ 1190 ที่ถูกกำกับด้วยinstances 5สำหรับการจัดประเภทฉันใช้SVCของ scikit SVCปัญหาคือฉันไม่รู้ว่าจะปรับสมดุลข้อมูลของฉันอย่างไรให้ถูกต้องเพื่อคำนวณความแม่นยำการเรียกคืนความแม่นยำและคะแนน f1 สำหรับกรณีมัลติคลาสอย่างถูกต้อง ดังนั้นฉันจึงลองใช้วิธีต่อไปนี้: อันดับแรก: wclf = SVC(kernel='linear', C= 1, class_weight={1: 10}) wclf.fit(X, y) weighted_prediction = wclf.predict(X_test) print 'Accuracy:', accuracy_score(y_test, weighted_prediction) print 'F1 score:', f1_score(y_test, weighted_prediction,average='weighted') print 'Recall:', recall_score(y_test, weighted_prediction, average='weighted') print …

7
จะตรวจสอบรุ่นของ nltk, scikit learn ที่ติดตั้งได้อย่างไร?
ในเชลล์สคริปต์ฉันกำลังตรวจสอบว่ามีการติดตั้งแพ็กเกจนี้หรือไม่หากไม่ได้ติดตั้งให้ติดตั้ง ดังนั้นด้วยเชลล์สคริปต์: import nltk echo nltk.__version__ แต่จะหยุดเชลล์สคริปต์ที่importบรรทัด ในลินุกซ์เทอร์มินัลพยายามดูในลักษณะนี้: which nltk ซึ่งไม่คิดว่ามีการติดตั้ง มีวิธีอื่นในการตรวจสอบการติดตั้งแพ็กเกจนี้ในเชลล์สคริปต์หรือไม่หากไม่ได้ติดตั้งให้ติดตั้งด้วย

11
sklearn: พบอาร์เรย์ที่มีจำนวนตัวอย่างไม่สอดคล้องกันเมื่อเรียก LinearRegression.fit ()
แค่พยายามทำการถดถอยเชิงเส้นอย่างง่าย แต่ฉันงงงันกับข้อผิดพลาดนี้สำหรับ: regr = LinearRegression() regr.fit(df2.iloc[1:1000, 5].values, df2.iloc[1:1000, 2].values) ซึ่งผลิต: ValueError: Found arrays with inconsistent numbers of samples: [ 1 999] การเลือกเหล่านี้ต้องมีขนาดเท่ากันและควรเป็นอาร์เรย์จำนวนนับดังนั้นสิ่งที่ฉันขาดหายไป?
102 scikit-learn 

3
RandomForestClassifier กับ ExtraTreesClassifier ใน scikit เรียนรู้
ใครช่วยอธิบายความแตกต่างระหว่าง RandomForestClassifier และ ExtraTreesClassifier ใน scikit ได้ ฉันใช้เวลาพอสมควรในการอ่านบทความ: P. Geurts, D. Ernst. และ L. Wehenkel,“ Extremely randomized trees”, Machine Learning, 63 (1), 3-42, 2006 ดูเหมือนว่านี่คือความแตกต่างสำหรับ ET: 1) เมื่อเลือกตัวแปรแบบแยกตัวอย่างจะถูกดึงมาจากชุดการฝึกอบรมทั้งหมดแทนที่จะเป็นตัวอย่าง bootstrap ของชุดการฝึกอบรม 2) การแยกจะถูกเลือกโดยการสุ่มจากช่วงของค่าในตัวอย่างในแต่ละการแบ่ง ผลจากสองสิ่งนี้คือ "ใบไม้" อีกมากมาย

7
Stratified Train / Test-split ใน scikit-learn
ฉันต้องการแบ่งข้อมูลของฉันออกเป็นชุดฝึก (75%) และชุดทดสอบ (25%) ขณะนี้ฉันใช้รหัสด้านล่าง: X, Xt, userInfo, userInfo_train = sklearn.cross_validation.train_test_split(X, userInfo) อย่างไรก็ตามฉันต้องการแบ่งชั้นชุดข้อมูลการฝึกอบรมของฉัน ฉันจะทำอย่างไร? ฉันได้ตรวจสอบStratifiedKFoldวิธีการนี้แล้ว แต่อย่าให้ฉันระบุการแบ่ง 75% / 25% และแบ่งชั้นชุดข้อมูลการฝึกอบรมเท่านั้น

5
พารามิเตอร์“ แบ่งชั้น” จากเมธอด“ train_test_split” (scikit Learn)
ฉันกำลังพยายามที่จะใช้train_test_splitจากแพคเกจ scikit เรียนรู้ stratifyแต่ฉันกำลังมีปัญหากับพารามิเตอร์ ต่อจากนี้คือรหัส: from sklearn import cross_validation, datasets X = iris.data[:,:2] y = iris.target cross_validation.train_test_split(X,y,stratify=y) อย่างไรก็ตามฉันได้รับปัญหาต่อไปนี้: raise TypeError("Invalid parameters passed: %s" % str(options)) TypeError: Invalid parameters passed: {'stratify': array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …


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