首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对象在试图写入泡菜文件时未找到。

对象在试图写入泡菜文件时未找到。
EN

Stack Overflow用户
提问于 2022-06-18 06:35:20
回答 2查看 30关注 0票数 1

我正在尝试用随机向量森林进行癌症检测。我正在尝试使用命令pickle.dump(forest,open("model.pkl","wb") .But创建一个泡菜文件,我得到了一个名称错误。

代码语言:javascript
复制
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

这是我的检测源代码:

代码语言:javascript
复制
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)
EN

回答 2

Stack Overflow用户

发布于 2022-06-18 06:56:16

代码语言:javascript
复制
model=models(X_train,Y_train) 

这部分代码不按顺序缩进。因此,它是作为递归调用的本地声明和操作。

票数 0
EN

Stack Overflow用户

发布于 2022-06-18 07:17:31

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

代码语言:javascript
复制
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"))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72667203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档