วิธีแก้ไข: ไม่มีโมดูลชื่อ "sklearn.cross_validation";


ข้อผิดพลาดที่คุณอาจพบเมื่อใช้ Python คือ:

 ModuleNotFoundError : No module named 'sklearn.cross_validation'

ข้อผิดพลาดนี้มักเกิดขึ้นเมื่อพยายามนำเข้าฟังก์ชัน train_test_split จาก sklearn โดยใช้บรรทัดต่อไปนี้:

 from sklearn. cross_validation import train_test_split

อย่างไรก็ตาม โมดูลย่อย cross_validation ถูกแทนที่ด้วยโมดูลย่อย model_selection ดังนั้นคุณต้องใช้บรรทัดต่อไปนี้:

 from sklearn. model_selection import train_test_split

ตัวอย่างต่อไปนี้แสดงวิธีการแก้ไขข้อผิดพลาดนี้ในทางปฏิบัติ

วิธีการทำซ้ำข้อผิดพลาด

สมมติว่าเราต้องการใช้ฟังก์ชัน train_test_split ของ sklearn เพื่อแยก DataFrame ของ pandas ออกเป็นชุดการฝึกและการทดสอบ

สมมติว่าเราพยายามใช้โค้ดต่อไปนี้เพื่อนำเข้าฟังก์ชัน train_test_split :

 from sklearn. cross_validation import train_test_split

ModuleNotFoundError : No module named 'sklearn.cross_validation'

เราได้รับข้อผิดพลาดเนื่องจากเราใช้ชื่อโมดูลย่อยไม่ถูกต้องเมื่อพยายามนำเข้าฟังก์ชัน train_test_split

วิธีการแก้ไขข้อผิดพลาด

เพื่อแก้ไขข้อผิดพลาดนี้ เราเพียงแค่ต้องใช้โมดูลย่อย model_selection แทน:

 from sklearn. model_selection import train_test_split

ครั้งนี้เราไม่ได้รับข้อผิดพลาดใดๆ

จากนั้นเราสามารถใช้ฟังก์ชัน train_test_split เพื่อแบ่ง DataFrame ของ pandas ออกเป็นชุดการฝึกอบรมและการทดสอบ:

 from sklearn. model_selection import train_test_split
import pandas as pd
import numpy as np

#make this example reproducible
n.p. random . seeds (1)

#create DataFrame with 1000 rows and 3 columns
df = pd. DataFrame ({' x1 ': np.random.randint(30, size=1000),
                   ' x2 ': np.random.randint(12, size=1000),
                   ' y ': np.random.randint(2, size=1000)})

#split original DataFrame into training and testing sets
train, test = train_test_split(df, test_size=0.2, random_state=0)

#view first few rows of each set
print ( train.head ())

     x1 x2 y
687 16 2 0
500 18 2 1
332 4 10 1
979 2 8 1
817 11 1 0

print ( test.head ())

     x1 x2 y
993 22 1 1
859 27 6 0
298 27 8 1
553 20 6 0
672 9 2 1

เราจัดการเพื่อใช้ฟังก์ชัน train_test_split ได้สำเร็จโดยไม่มีข้อผิดพลาด

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีแก้ไขข้อผิดพลาดทั่วไปอื่นๆ ใน Python:

วิธีแก้ไข: คอลัมน์ซ้อนทับกันแต่ไม่ได้ระบุส่วนต่อท้าย
วิธีแก้ไข: วัตถุ ‘numpy.ndarray’ ไม่มีแอตทริบิวต์ ‘ผนวก’
วิธีแก้ไข: หากใช้ค่าสเกลาร์ทั้งหมด คุณจะต้องผ่านดัชนี
วิธีแก้ไข: ValueError: ไม่สามารถแปลง float NaN เป็น int

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *