试图编写泡菜文件时找不到对象

发布于 2025-02-08 21:41:47 字数 1725 浏览 3 评论 0原文

我正在尝试使用随机矢量森林进行癌症检测。我正在尝试使用命令cickle.dump(forest,open(“ model.pkl”,“ wb”)。但我收到名称错误

NameError                                 Traceback (most recent call last)
c:\Users\hp\newtest\pcancer.ipynb Cell 6' in <cell line: 1>()
----> 1 pickle.dump(forest,open("model.pkl","wb"))

NameError: name 'forest' is not defined

这是我的源代码,用于检测:

import numpy as np
import pandas as pd
import warnings as wr
#Ignoring warnings
from sklearn.exceptions import UndefinedMetricWarning
wr.filterwarnings("ignore", category=UndefinedMetricWarning)
import pickle

df=pd.read_csv('Prostate_cancer_data.csv')
print(df.head(10))
print(df.shape)
print(df.isna().sum())


df=df.dropna(axis=1)#Drop the column with empty data
df=df.drop(['id'],axis=1)


#Encoding first column
from sklearn.preprocessing import LabelEncoder
labelencoder_X=LabelEncoder() 
df.iloc[:,0]=labelencoder_X.fit_transform(df.iloc[:,0].values)

#Splitting data for dependence
X=df.iloc[:,1:].values
Y=df.iloc[:,0].values

#Train-Test split
from sklearn.model_selection import train_test_split
X_train,X_test,Y_train,Y_test=train_test_split(X,Y,test_size=0.25,random_state=1)
 

#Standard scaling
from sklearn.preprocessing import StandardScaler
sc=StandardScaler()
X_train=sc.fit_transform(X_train)
X_test=sc.fit_transform(X_test)



from sklearn.ensemble import RandomForestClassifier
def models(X_train,Y_train):

    #Random forest classifier
    forest=RandomForestClassifier(n_estimators=10,criterion='entropy',random_state=0)
    forest.fit(X_train,Y_train)

    print("Random Forest:",forest.score(X_train,Y_train))

    return forest

    print("Accuracy")
    model=models(X_train,Y_train)

I am trying to do cancer detection using Random Vector Forest. I am trying to make a pickle file by using the command pickle.dump(forest,open("model.pkl","wb") .But I am getting a name error

NameError                                 Traceback (most recent call last)
c:\Users\hp\newtest\pcancer.ipynb Cell 6' in <cell line: 1>()
----> 1 pickle.dump(forest,open("model.pkl","wb"))

NameError: name 'forest' is not defined

This is my source code for detection:

import numpy as np
import pandas as pd
import warnings as wr
#Ignoring warnings
from sklearn.exceptions import UndefinedMetricWarning
wr.filterwarnings("ignore", category=UndefinedMetricWarning)
import pickle

df=pd.read_csv('Prostate_cancer_data.csv')
print(df.head(10))
print(df.shape)
print(df.isna().sum())


df=df.dropna(axis=1)#Drop the column with empty data
df=df.drop(['id'],axis=1)


#Encoding first column
from sklearn.preprocessing import LabelEncoder
labelencoder_X=LabelEncoder() 
df.iloc[:,0]=labelencoder_X.fit_transform(df.iloc[:,0].values)

#Splitting data for dependence
X=df.iloc[:,1:].values
Y=df.iloc[:,0].values

#Train-Test split
from sklearn.model_selection import train_test_split
X_train,X_test,Y_train,Y_test=train_test_split(X,Y,test_size=0.25,random_state=1)
 

#Standard scaling
from sklearn.preprocessing import StandardScaler
sc=StandardScaler()
X_train=sc.fit_transform(X_train)
X_test=sc.fit_transform(X_test)



from sklearn.ensemble import RandomForestClassifier
def models(X_train,Y_train):

    #Random forest classifier
    forest=RandomForestClassifier(n_estimators=10,criterion='entropy',random_state=0)
    forest.fit(X_train,Y_train)

    print("Random Forest:",forest.score(X_train,Y_train))

    return forest

    print("Accuracy")
    model=models(X_train,Y_train)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

狼亦尘 2025-02-15 21:41:47
model=models(X_train,Y_train) 

代码的这一部分未按顺序缩进。因此,它是本地声明和行动作为递归电话

model=models(X_train,Y_train) 

this part of code is not indented in order. so its a local declaration and action as a recursive call

日记撕了你也走了 2025-02-15 21:41:47

代码的最后一部分中存在凹痕问题。这是正确的缩进代码,当您创建一个泡菜文件时,您将在其命名模型中返回森林,而不是在森林中编写模型对象

from sklearn.ensemble import RandomForestClassifier
def models(X_train,Y_train):

    #Random forest classifier
    forest=RandomForestClassifier(n_estimators=10,criterion='entropy',random_state=0)
    forest.fit(X_train,Y_train)

    print("Random Forest:",forest.score(X_train,Y_train))

    return forest

print("Accuracy")
model=models(X_train,Y_train)
pickle.dump(model,open("model.pkl","wb"))

There is indentation problem in the last section of your code. This is correctly indented code and when you create a pickle file you'll write model object in it not the forest as forest is returned in object named model

from sklearn.ensemble import RandomForestClassifier
def models(X_train,Y_train):

    #Random forest classifier
    forest=RandomForestClassifier(n_estimators=10,criterion='entropy',random_state=0)
    forest.fit(X_train,Y_train)

    print("Random Forest:",forest.score(X_train,Y_train))

    return forest

print("Accuracy")
model=models(X_train,Y_train)
pickle.dump(model,open("model.pkl","wb"))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文