TypeError:单例数组(
当我试图在我的自定义AZHU_EmailClassifier_2类中运行train_test_split函数时,我遇到了这个错误。
我的班级:
class AZHU_EmailClassifier_2:
import os
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
def __init__(self):
pass
def retrain_model(self, csv_file):
MIN_ROW_NUMBER = 500
TEST_SIZE = 0.25
RANDOM_STATE = 42
self.os.chdir(r"c:\LORI\PROJECTS\ALLIANZ\INCOMING_CHANNELS") # <---- a retraining file mappaja
df=self.pd.read_excel(csv_file,error_bad_lines=False, header=None)
df.dropna(axis=0,how='any', inplace=True)
rows_no=df.shape[0]
if rows_no<MIN_ROW_NUMBER:
print("Insufficient number of rows (<35.000)! RETRAINING ABORTED")
return None
X=df[0]
y=df[1]
X_train, X_test, y_train, y_test=self.train_test_split(X,y)
#X_train, X_test, y_train, y_test=self.train_test_split(X,y,test_size=TEST_SIZE, random_state=RANDOM_STATE, stratify=y)
return X_train
当我运行train_test_split函数时,会触发错误。
整个错误消息:
--------------------------------------------------------------------------- TypeError Traceback(最近的调用最后)在1实例=AZHU_EmailClassifier_2()2----
在再培训模型中(自我,csv文件)28 y=df[1]29---
~\Anaconda3\lib\site packages\sklearn\model\u selection\u split.py in train\u test\u split(*数组,**选项)2125 raise TypeError(“传递的无效参数:%s”%str(选项))2126-
~\Anaconda3\lib\site packages\sklearn\utils\validation.py in indexable(*iterables)291''“292 result=[\u使iterables中的X可索引(X)]--
~\Anaconda3\lib\site-包\skLearning\utils\validation.pycheck_consistent_length(*数组)251""252--
(.0)251“”252中的~\Anaconda3\lib\site packages\sklearn\utils\validation.py--
~\Anaconda3\lib\site-包\skLearning\utils\validation.py在_num_samples(x)194如果hasattr(x,'形状')和x.shape不是无:195如果len(x.shape)==0:--
TypeError:单例数组(
我不知道为什么它抛出这个错误。你能给我指出正确的方向吗?任何帮助都很感激!
出现此错误是因为您在类内导入了train\u test\u split
,因此,train\u test\u split
成为绑定方法而不是函数,并且每当调用该方法时,实例将作为第一个参数传递。下面是一个可以重建情况的最小示例
class test():
from sklearn.model_selection import train_test_split
def retrain_model(self):
print(self.train_test_split)
print(self.train_test_split())
test_instance = test()
test_instance.retrain_model()
运行此脚本后,您将得到一个TypeError
TypeError: Singleton array array(<__main__.test object at 0x7ffa473ae438>, dtype=object) cannot be considered a valid collection.
而self.train_test_split
在内存中的位置也是0x7ffa473ae438
。
根据PEP8的说法
导入总是放在文件的顶部,就在任何模块注释和docstring之后,模块全局和常量之前。
因此,最简单的解决方案是导入类外的所有内容,直接调用train_test_split
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
class AZHU_EmailClassifier_2():
def __init__(self):
pass
def retrain_model(self,):
MIN_ROW_NUMBER = 20
TEST_SIZE = 0.25
RANDOM_STATE = 42
df = pd.DataFrame({0:np.linspace(1,100,100),1:np.random.rand(100)})
X=df[0];y=df[1]
X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=TEST_SIZE,random_state=RANDOM_STATE)
return X_train
test = AZHU_EmailClassifier_2()
test.retrain_model()
TypeError:单个数组数组(<__Main__.Azhu_EmailClassifier_2对象位于0x000001D6E7A680D0>,DType=object)不能视为有效集合。 当我试图在自定义的AZHU_EmailClassifier_2类中运行train_test_split函数时,我遇到了这个错误。 我的班级: ~\Anaconda3\lib\site-packages\skl
本文向大家介绍Rust 自定义错误类型,包括了Rust 自定义错误类型的使用技巧和注意事项,需要的朋友参考一下 示例
查找有关在 Pyspark 中使用自定义分区程序的一些信息。我有一个数据帧,其中包含各个国家/地区的国家/地区数据。因此,如果我在国家/地区列上重新分区,它会将我的数据分发到 n 个分区中,并将类似的国家/地区数据保留到特定分区。当我看到使用 方法时,这是创建一个倾斜分区数据。 一些国家,如美国和中国,在特定的数据帧中拥有大量数据。我想重新分区我的数据帧,这样如果国家是美国和中国,那么它将进一步拆
我使用的是自定义类型Vector的线程安全队列。它显示以下错误。我不确定我在这里错过了什么。 错误C2664“std::vector>::vector(std::vector<_ty,std::allocator<_ty>>&&,constalloc&)noexcept()”:无法将参数2从“int”转换为“const std::allocator<_ty>&”。
问题内容: 我有一堂课: 我想在“ JPA”专栏中使用它: 这就是Hibernate所说的: 如何使其了解我的自定义类型。我认为这很简单,但是在文档中找不到。 问题答案: 好吧,有很多方法: 用注释类,并具有: private Email email; 声明自定义值类型-参见此处(使用)
以下代码不能按预期工作。显然,我不能在类定义中使用类自己的类型: 运行它的结果是: 此外,使用检查代码会返回: 如何将此代码更正为对Python和mypy有效?