首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >training.test.split返回空训练集

training.test.split返回空训练集
EN

Stack Overflow用户
提问于 2020-04-16 15:03:16
回答 2查看 325关注 0票数 0

在分配我的训练和测试集并应用回归后,我得到一个错误

代码语言:javascript
复制
> ValueError                                Traceback (most recent call last)
><ipython-input-32-26b4f0d4f5a4> in <module>()
>      1 Lin = LinearRegression()
>----> 2 Lin.fit(training_x,training_y)
>C:\Users\sayaji\Anaconda3\lib\site-packages\sklearn\linear_model\base.py in >fit(self, X, y, sample_weight)


>    510         n_jobs_ = self.n_jobs
>    511         X, y = check_X_y(X, y, accept_sparse=['csr', 'csc', 'coo'],
>--> 512                          y_numeric=True, multi_output=True)
>    513 
>    514         if sample_weight is not None and ?>np.atleast_1d(sample_weight).ndim > 1:

>C:\Users\sayaji\Anaconda3\lib\site-packages\sklearn\utils\validation.py in >check_X_y(X, y, accept_sparse, dtype, order, copy, force_all_finite, ensure_2d, >allow_nd, multi_output, ensure_min_samples, ensure_min_features, y_numeric, >warn_on_dtype, estimator)
>    519     X = check_array(X, accept_sparse, dtype, order, copy, >force_all_finite,
>    520                     ensure_2d, allow_nd, ensure_min_samples,
>--> 521                     ensure_min_features, warn_on_dtype, estimator)
>    522     if multi_output:
>    523         y = check_array(y, 'csr', force_all_finite=True, >ensure_2d=False,

>C:\Users\sayaji\Anaconda3\lib\site-packages\sklearn\utils\validation.py in >check_array(array, accept_sparse, dtype, order, copy, force_all_finite, >ensure_2d, allow_nd, ensure_min_samples, ensure_min_features, warn_on_dtype, >estimator)
>    414                              " minimum of %d is required%s."
>    415                              % (n_samples, shape_repr, >ensure_min_samples,
>--> 416                                 context))
>    417 
>    418     if ensure_min_features > 0 and array.ndim == 2:


>ValueError: Found array with 0 sample(s) (shape=(0, 50)) while a minimum of 1 is >required.

如果大家都需要的话,这里是我的完整代码

代码语言:javascript
复制
training_x,testing_x,training_y,testing_y = train_test_split(real_x,real_y,test_size=0.3,random_state=0)
Lin = LinearRegression()
Lin.fit(training_x,training_y)
real_x = data["R&D Spend"].values
real_y = data["State"].values
real_x = real_x.reshape(1,-1)
real_y = real_y.reshape(1,-1)
training_x,testing_x,training_y,testing_y = train_test_split(real_x,real_y,test_size=0.3,random_state=0)
Lin = LinearRegression()
Lin.fit(training_x,training_y)
real_x.shape
(1, 50)
real_x.shape
(1, 50)
training_x.shape
(0,50)
training_y.shape
(0,50)

我认为这就是导致错误的原因,训练x和训练y不应该有0,是不是我做错了什么?

EN

回答 2

Stack Overflow用户

发布于 2020-04-16 15:21:00

当只涉及一个功能时,使用reshape(-1,1),数据应如下所示:

代码语言:javascript
复制
real_x = data["R&D Spend"].values
real_x = real_x.reshape(-1,1)

real_y = data["State"].values
real_y = real_y.reshape(-1,1)

training_x,testing_x,training_y,testing_y = train_test_split(real_x,real_y,test_size=0.3,random_state=0)

Lin = LinearRegression().fit(training_x,training_y)

此外,您通常希望使代码更具可读性,因此请在不相关的变量或函数之间留出空格。

票数 0
EN

Stack Overflow用户

发布于 2020-04-16 15:24:34

在重现案例的条件并运行它之后,我得到了一个更明确的错误:

代码语言:javascript
复制
ValueError: With n_samples=1, test_size=0.3 and train_size=None, the resulting train set will be empty. Adjust any of the aforementioned parameters.

这意味着它正在对第一个维度(在本例中为1)上的数据进行拆分,这导致结果中的第一个维度为0。

因此,只需重塑train_test_split的输入,将50作为第一个维度。它解决了这个问题。

例如,real_x.reshape(50,1)real_y也是如此

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61244483

复制
相关文章

相似问题

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