ฉันพยายามใช้train_test_split
ฟังก์ชันและเขียน:
from sklearn.model_selection import train_test_split
และสาเหตุนี้
ImportError: No module named model_selection
ทำไม? แล้วจะเอาชนะได้อย่างไร?
ฉันพยายามใช้train_test_split
ฟังก์ชันและเขียน:
from sklearn.model_selection import train_test_split
และสาเหตุนี้
ImportError: No module named model_selection
ทำไม? แล้วจะเอาชนะได้อย่างไร?
คำตอบ:
ผมคิดว่าคุณมีรุ่นที่ไม่ถูกต้องของscikit-learn
สถานการณ์ที่คล้ายกันก็อธิบายนี่บน GitHub ก่อนหน้านี้ (ก่อนหน้าv0.18
) train_test_split
อยู่ในcross_validation
โมดูล:
from sklearn.cross_validation import train_test_split
อย่างไรก็ตามตอนนี้มันอยู่ในmodel_selection
โมดูล:
from sklearn.model_selection import train_test_split
ดังนั้นคุณจะต้องมีเวอร์ชันใหม่ล่าสุด
ในการอัปเกรดเป็นเวอร์ชันอย่างน้อย0.18
ให้ทำ:
pip install -U scikit-learn
(หรือpip3
ขึ้นอยู่กับเวอร์ชัน Python ของคุณ) หากคุณติดตั้งด้วยวิธีอื่นตรวจสอบให้แน่ใจว่าคุณใช้วิธีอื่นในการอัปเดตตัวอย่างเช่นเมื่อใช้ Anaconda
import sklearn
, sklearn
(ครับเพียงแค่คำ) และsklearn.__version__
? แม้ว่าจะได้รับการแก้ไขแล้วสำหรับคุณ แต่ก็น่าสนใจที่จะทราบว่าปัญหามาจากไหน
conda update scikit-learn
GridSearchCV
ผมพบปัญหานี้เมื่อฉันนำเข้า
เพิ่งเปลี่ยนsklearn.model_selection
เป็นsklearn.grid_search
.
ฉันมีปัญหาเดียวกันขณะใช้ Jupyter Notebook ไม่ว่าฉันจะอัปเดตอะไรใน Python 3, conda ฉันไม่สามารถเข้า Jupyter ได้:
import sklearn
print (sklearn.__version__)
0.17.1
เพื่อแสดง scikit-learn-0.18.1
ในที่สุดฉันก็เอา Anaconda3 และ Jupyter Notebook ออกและติดตั้งใหม่ ฉันได้รับมันไปทำงาน
http://ukitech.blogspot.com/2017/02/sklearnmodelselection.html
คุณมี sklearn ไหม ถ้าไม่ทำดังต่อไปนี้:
sudo pip install sklearn
หลังจากติดตั้ง sklearn
from sklearn.model_selection import train_test_split
ใช้งานได้ดี
ในการติดตั้ง scikit-learn เวอร์ชัน 18.0 ฉันใช้ทั้งสองคำสั่ง:
conda update scikit-learn
pip ติดตั้ง -U scikit-learn
แต่มันไม่ได้ผล เกิดปัญหา "ไม่สามารถติดตั้ง" scikit-learn "เป็นโปรเจ็กต์ที่ติดตั้งโดยไม่ได้ตั้งใจและทำให้เราไม่สามารถระบุได้อย่างถูกต้องว่าไฟล์ใดเป็นของไฟล์ซึ่งจะนำไปสู่การถอนการติดตั้งเพียงบางส่วน"
ในที่สุดฉันสามารถติดตั้งได้โดยใช้คำสั่งต่อไปนี้:
pip ติดตั้ง - ผู้ใช้ - อัปเกรด scikit-learn == 0.18.0
ในช่วงปลายเดือนกันยายน 2559 SciKit Learn 0.18 ได้เปิดตัวและมีการเปลี่ยนแปลงเล็กน้อยในรหัส ด้วย SciKit Learn 0.18 ฟังก์ชัน train_test_split จะถูกนำเข้าจาก model_selection แทน cross_validation
from sklearn.cross_validation import train_test_split
ถูกเปลี่ยนเป็น:
from sklearn.model_selection import train_test_split
เช่นเดียวกันกับ GridSearchCV
ดังที่ @linusg กล่าวว่าทางเลือกหนึ่งคือการนำเข้า crossvalidation ดังนี้:
from sklearn import cross_validation
X_train,X_test,y_train,y_test = cross_validation.train_test_split(X,y,test_size=0.3)
เวอร์ชันเสถียรล่าสุดของ sklearn 0.20.0 มีtrain_test_splitอยู่ภายใต้ model_selection ไม่อยู่ภายใต้cross_validation
ในการตรวจสอบเวอร์ชัน sklearn ของคุณ:
นำเข้าพิมพ์ sklearn ( รุ่น sklearn. ) 0.20.2
เวอร์ชัน sklearn ของคุณต่ำเกินไปmodel_selection
นำเข้าโดย 0.18.1 ดังนั้นโปรดอัปเดตเวอร์ชัน sklearn