无法在<module'__main __'>

如何解决无法在<module'__main __'>

我的一个笔记本中有一个课,如下所示:

class MyScaler(BaseEstimator,TransformerMixin):
    def __init__(self,columns,with_mean=True,with_std=True,copy=True):
        self.scaler = StandardScaler(copy,with_mean,with_std)
        self.columns = columns
        self.mean_ = None
        self.var_ = None

    def fit(self,X,y=None):
        self.scaler.fit(X[self.columns],y)
        self.mean_ = np.array(np.mean(X[self.columns]))
        self.var_ = np.array(np.var(X[self.columns]))
        return self

    def transform(self,y=None,copy=None):
        initial_col_order = X.columns
        X_scaled = pd.DataFrame(self.scaler.transform(X[self.columns]),columns=self.columns)
        X_not_scaled = X.loc[:,~X.columns.isin(self.columns)]
        return pd.concat([X_not_scaled,X_scaled],axis=1)[initial_col_order]

我把这堂课腌制为:

with open('Custom_Scaler','wb') as file:
    pickle.dump(MyScaler,file)

我有一个模块'LogReg_Absent_Module',在这里我试图解开该文件。我还在该模块中定义了此类,如下所示:

import pandas as pd
import numpy as np
import pickle
from sklearn.preprocessing import StandardScaler
from sklearn.base import BaseEstimator,TransformerMixin

#The custom scaler that only scales the non-dummy value columns.
class MyScaler(BaseEstimator,axis=1)[initial_col_order]

#The class that we are going to use from here on to predict new data
class absenteeism_model():
    def __init__(self,model_file,scaler_file):
        with open('Absenteeism_Model','rb') as model_file,open('Custom_Scaler','rb') as scaler_file:
            self.log_reg = pickle.load(model_file)             #Load the prevIoUsly saved model 
            self.scaler = pickle.load(scaler_file)             #and scaler.
            self.data = None

在新笔记本上,当我尝试model = absenteeism_model('Absenteeism_Model','Custom_Scaler')

我得到:

<ipython-input-66-8631c175353f> in <module>
----> 1 model = absenteeism_model('Absenteeism_Model','Custom_Scaler')

~\LogReg_Absent_Module.py in __init__(self,scaler_file)
    37         with open('Absenteeism_Model','rb') as scaler_file:
    38             self.log_reg = pickle.load(model_file)             #Load the prevIoUsly saved model
---> 39             self.scaler = pickle.load(scaler_file)             #and scaler.
    40             self.data = None
    41 

AttributeError: Can't get attribute 'MyScaler' on <module '__main__'>```

   






解决方法

我不明白您为什么要腌制一个班级而不是该班级的对象

,

您介意显示实现MyScaler的零件代码。我认为保存缩放器时MyScaler类的对象有问题。

例如,您已声明:

scaler = MyScaler(X)

然后在这种情况下,您将使用以下代码腌制:

 with open ('Custom_Scaler','wb') as file: 
  pickle.dump(scaler,file)

看看这是否可以解决您的问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?