Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 深度学习中的输入数据缩放问题_Python_Machine Learning_Deep Learning_Scale - Fatal编程技术网

Python 深度学习中的输入数据缩放问题

Python 深度学习中的输入数据缩放问题,python,machine-learning,deep-learning,scale,Python,Machine Learning,Deep Learning,Scale,我正在尝试使用CSV文件数据制作一个预测癌症检测的项目,我已将癌症CSV数据分成两个文件,分别为X_data.CSV和Y_data.CSV。请关注下面有兴趣帮助我解决问题的代码 导入所有需要的库和子库: import tensorflow as tf import keras.backend as K from keras.models import Sequential from keras.layers import Dense from keras.optimizers import A

我正在尝试使用CSV文件数据制作一个预测癌症检测的项目,我已将癌症CSV数据分成两个文件,分别为X_data.CSVY_data.CSV。请关注下面有兴趣帮助我解决问题的代码

导入所有需要的库和子库:

import tensorflow as tf

import keras.backend as K
from keras.models import Sequential
from keras.layers import Dense
from keras.optimizers import Adam
from keras.callbacks import EarlyStopping
from keras.utils import to_categorical
import keras

import numpy as np

from keras.layers import BatchNormalization
from keras.layers import Dropout
from keras import regularizers

import pandas as pd

import sklearn
from sklearn import preprocessing
from sklearn.model_selection import train_test_split

import matplotlib
from matplotlib import pyplot as plt
%matplotlib inline
%config InlineBackend.figure_format='retina'
df1 = pd.read_csv('X_data.csv')
df2 = pd.read_csv('Y_data.csv')
df1 = preprocessing.scale(df1)    //I faced error here
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-3-aec70d746687> in <module>
      1 # Scale input data
      2 
----> 3 df1 = preprocessing.scale(df1)

~/anaconda3/lib/python3.8/site-packages/sklearn/utils/validation.py in inner_f(*args, **kwargs)
     71                           FutureWarning)
     72         kwargs.update({k: arg for k, arg in zip(sig.parameters, args)})
---> 73         return f(**kwargs)
     74     return inner_f
     75 

~/anaconda3/lib/python3.8/site-packages/sklearn/preprocessing/_data.py in scale(X, axis, with_mean, with_std, copy)
    139 
    140     """  # noqa
--> 141     X = check_array(X, accept_sparse='csc', copy=copy, ensure_2d=False,
    142                     estimator='the scale function', dtype=FLOAT_DTYPES,
    143                     force_all_finite='allow-nan')

~/anaconda3/lib/python3.8/site-packages/sklearn/utils/validation.py in inner_f(*args, **kwargs)
     71                           FutureWarning)
     72         kwargs.update({k: arg for k, arg in zip(sig.parameters, args)})
---> 73         return f(**kwargs)
     74     return inner_f
     75 

~/anaconda3/lib/python3.8/site-packages/sklearn/utils/validation.py in check_array(array, accept_sparse, accept_large_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, ensure_min_samples, ensure_min_features, estimator)
    597                     array = array.astype(dtype, casting="unsafe", copy=False)
    598                 else:
--> 599                     array = np.asarray(array, order=order, dtype=dtype)
    600             except ComplexWarning:
    601                 raise ValueError("Complex data not supported\n"

~/anaconda3/lib/python3.8/site-packages/numpy/core/_asarray.py in asarray(a, dtype, order)
     83 
     84     """
---> 85     return array(a, dtype, copy=False, order=order)
     86 
     87 

ValueError: could not convert string to float: 'discrete'
导入输入(x)和输出(y)数据,并将其分配给df1和df2:

import tensorflow as tf

import keras.backend as K
from keras.models import Sequential
from keras.layers import Dense
from keras.optimizers import Adam
from keras.callbacks import EarlyStopping
from keras.utils import to_categorical
import keras

import numpy as np

from keras.layers import BatchNormalization
from keras.layers import Dropout
from keras import regularizers

import pandas as pd

import sklearn
from sklearn import preprocessing
from sklearn.model_selection import train_test_split

import matplotlib
from matplotlib import pyplot as plt
%matplotlib inline
%config InlineBackend.figure_format='retina'
df1 = pd.read_csv('X_data.csv')
df2 = pd.read_csv('Y_data.csv')
df1 = preprocessing.scale(df1)    //I faced error here
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-3-aec70d746687> in <module>
      1 # Scale input data
      2 
----> 3 df1 = preprocessing.scale(df1)

~/anaconda3/lib/python3.8/site-packages/sklearn/utils/validation.py in inner_f(*args, **kwargs)
     71                           FutureWarning)
     72         kwargs.update({k: arg for k, arg in zip(sig.parameters, args)})
---> 73         return f(**kwargs)
     74     return inner_f
     75 

~/anaconda3/lib/python3.8/site-packages/sklearn/preprocessing/_data.py in scale(X, axis, with_mean, with_std, copy)
    139 
    140     """  # noqa
--> 141     X = check_array(X, accept_sparse='csc', copy=copy, ensure_2d=False,
    142                     estimator='the scale function', dtype=FLOAT_DTYPES,
    143                     force_all_finite='allow-nan')

~/anaconda3/lib/python3.8/site-packages/sklearn/utils/validation.py in inner_f(*args, **kwargs)
     71                           FutureWarning)
     72         kwargs.update({k: arg for k, arg in zip(sig.parameters, args)})
---> 73         return f(**kwargs)
     74     return inner_f
     75 

~/anaconda3/lib/python3.8/site-packages/sklearn/utils/validation.py in check_array(array, accept_sparse, accept_large_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, ensure_min_samples, ensure_min_features, estimator)
    597                     array = array.astype(dtype, casting="unsafe", copy=False)
    598                 else:
--> 599                     array = np.asarray(array, order=order, dtype=dtype)
    600             except ComplexWarning:
    601                 raise ValueError("Complex data not supported\n"

~/anaconda3/lib/python3.8/site-packages/numpy/core/_asarray.py in asarray(a, dtype, order)
     83 
     84     """
---> 85     return array(a, dtype, copy=False, order=order)
     86 
     87 

ValueError: could not convert string to float: 'discrete'
缩放输入数据:

import tensorflow as tf

import keras.backend as K
from keras.models import Sequential
from keras.layers import Dense
from keras.optimizers import Adam
from keras.callbacks import EarlyStopping
from keras.utils import to_categorical
import keras

import numpy as np

from keras.layers import BatchNormalization
from keras.layers import Dropout
from keras import regularizers

import pandas as pd

import sklearn
from sklearn import preprocessing
from sklearn.model_selection import train_test_split

import matplotlib
from matplotlib import pyplot as plt
%matplotlib inline
%config InlineBackend.figure_format='retina'
df1 = pd.read_csv('X_data.csv')
df2 = pd.read_csv('Y_data.csv')
df1 = preprocessing.scale(df1)    //I faced error here
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-3-aec70d746687> in <module>
      1 # Scale input data
      2 
----> 3 df1 = preprocessing.scale(df1)

~/anaconda3/lib/python3.8/site-packages/sklearn/utils/validation.py in inner_f(*args, **kwargs)
     71                           FutureWarning)
     72         kwargs.update({k: arg for k, arg in zip(sig.parameters, args)})
---> 73         return f(**kwargs)
     74     return inner_f
     75 

~/anaconda3/lib/python3.8/site-packages/sklearn/preprocessing/_data.py in scale(X, axis, with_mean, with_std, copy)
    139 
    140     """  # noqa
--> 141     X = check_array(X, accept_sparse='csc', copy=copy, ensure_2d=False,
    142                     estimator='the scale function', dtype=FLOAT_DTYPES,
    143                     force_all_finite='allow-nan')

~/anaconda3/lib/python3.8/site-packages/sklearn/utils/validation.py in inner_f(*args, **kwargs)
     71                           FutureWarning)
     72         kwargs.update({k: arg for k, arg in zip(sig.parameters, args)})
---> 73         return f(**kwargs)
     74     return inner_f
     75 

~/anaconda3/lib/python3.8/site-packages/sklearn/utils/validation.py in check_array(array, accept_sparse, accept_large_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, ensure_min_samples, ensure_min_features, estimator)
    597                     array = array.astype(dtype, casting="unsafe", copy=False)
    598                 else:
--> 599                     array = np.asarray(array, order=order, dtype=dtype)
    600             except ComplexWarning:
    601                 raise ValueError("Complex data not supported\n"

~/anaconda3/lib/python3.8/site-packages/numpy/core/_asarray.py in asarray(a, dtype, order)
     83 
     84     """
---> 85     return array(a, dtype, copy=False, order=order)
     86 
     87 

ValueError: could not convert string to float: 'discrete'
下面给出了缩放错误:

import tensorflow as tf

import keras.backend as K
from keras.models import Sequential
from keras.layers import Dense
from keras.optimizers import Adam
from keras.callbacks import EarlyStopping
from keras.utils import to_categorical
import keras

import numpy as np

from keras.layers import BatchNormalization
from keras.layers import Dropout
from keras import regularizers

import pandas as pd

import sklearn
from sklearn import preprocessing
from sklearn.model_selection import train_test_split

import matplotlib
from matplotlib import pyplot as plt
%matplotlib inline
%config InlineBackend.figure_format='retina'
df1 = pd.read_csv('X_data.csv')
df2 = pd.read_csv('Y_data.csv')
df1 = preprocessing.scale(df1)    //I faced error here
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-3-aec70d746687> in <module>
      1 # Scale input data
      2 
----> 3 df1 = preprocessing.scale(df1)

~/anaconda3/lib/python3.8/site-packages/sklearn/utils/validation.py in inner_f(*args, **kwargs)
     71                           FutureWarning)
     72         kwargs.update({k: arg for k, arg in zip(sig.parameters, args)})
---> 73         return f(**kwargs)
     74     return inner_f
     75 

~/anaconda3/lib/python3.8/site-packages/sklearn/preprocessing/_data.py in scale(X, axis, with_mean, with_std, copy)
    139 
    140     """  # noqa
--> 141     X = check_array(X, accept_sparse='csc', copy=copy, ensure_2d=False,
    142                     estimator='the scale function', dtype=FLOAT_DTYPES,
    143                     force_all_finite='allow-nan')

~/anaconda3/lib/python3.8/site-packages/sklearn/utils/validation.py in inner_f(*args, **kwargs)
     71                           FutureWarning)
     72         kwargs.update({k: arg for k, arg in zip(sig.parameters, args)})
---> 73         return f(**kwargs)
     74     return inner_f
     75 

~/anaconda3/lib/python3.8/site-packages/sklearn/utils/validation.py in check_array(array, accept_sparse, accept_large_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, ensure_min_samples, ensure_min_features, estimator)
    597                     array = array.astype(dtype, casting="unsafe", copy=False)
    598                 else:
--> 599                     array = np.asarray(array, order=order, dtype=dtype)
    600             except ComplexWarning:
    601                 raise ValueError("Complex data not supported\n"

~/anaconda3/lib/python3.8/site-packages/numpy/core/_asarray.py in asarray(a, dtype, order)
     83 
     84     """
---> 85     return array(a, dtype, copy=False, order=order)
     86 
     87 

ValueError: could not convert string to float: 'discrete'
---------------------------------------------------------------------------
ValueError回溯(最近一次调用上次)
在里面
1#刻度输入数据
2.
---->3 df1=预处理规模(df1)
内部文件中的~/anaconda3/lib/python3.8/site-packages/sklearn/utils/validation.py(*args,**kwargs)
71未来警告)
72 kwargs.update({k:arg代表k,arg在zip中(sig.parameters,args)})
--->73返回f(**kwargs)
74返回内部\u f
75
~/anaconda3/lib/python3.8/site-packages/sklearn/preprocessing//u data.py比例(X,轴,带_平均值,带_标准,复制)
139
140“noqa
-->141 X=检查数组(X,接受稀疏=csc',复制=复制,确保2d=假,
142估计器=“标度函数”,数据类型=浮点型,
143力(所有有限的)
内部文件中的~/anaconda3/lib/python3.8/site-packages/sklearn/utils/validation.py(*args,**kwargs)
71未来警告)
72 kwargs.update({k:arg代表k,arg在zip中(sig.parameters,args)})
--->73返回f(**kwargs)
74返回内部\u f
75
检查数组中的~/anaconda3/lib/python3.8/site-packages/sklearn/utils/validation.py(数组、接受稀疏、接受大稀疏、数据类型、顺序、复制、强制所有有限、确保2d、允许nd、确保最小样本、确保最小特征、估计器)
597 array=array.astype(dtype,casting=“不安全”,copy=False)
598其他:
-->599数组=np.asarray(数组,顺序=order,dtype=dtype)
600除复杂警告外:
601 raise VALUERROR(“不支持复杂数据\n”
~/anaconda3/lib/python3.8/site-packages/numpy/core//\u asarray.py in asarray(a,数据类型,顺序)
83
84     """
--->85返回数组(a,数据类型,副本=False,顺序=order)
86
87
ValueError:无法将字符串转换为浮点:“离散”

最后一行逐字说明了问题所在。
ValueError:无法将字符串转换为float:'discrete'
。如果打印数据(
df1.head()
),您将看到有一些字符串数据,如错误所示,
预处理
函数无法处理


因此,您必须首先执行数据清理(将字符串转换为int/float、处理任何丢失的数据等)。您可以查找类似
LabelEncoder()的内容
来自sklearn的函数或
一个热编码器来处理字符串到int的问题。

最后一行逐字说明了问题所在。
ValueError:无法将字符串转换为float:'discrete'
。如果打印数据(
df1.head()
),您将看到有一些字符串数据,如错误所示,
预处理
函数无法处理


因此,您必须首先执行数据清理(将字符串转换为int/float、处理任何丢失的数据等)。您可以查找类似
LabelEncoder()的内容
来自sklearn或
一个热编码器的函数
来处理从字符串到int的问题。

我认为刻度仅适用于数值。在这里,看起来您使用的数据帧仍然有标题。尝试使用df1.values而不是df1,这将把数据帧映射到一个没有标题的numpy数组中rs。否则,读取不带标题的数据帧。我认为scale仅适用于数值。在这里,您正在使用的数据帧似乎仍然具有标题。尝试使用df1.values而不是df1,它将数据帧映射到不带标题的numpy数组中。否则,读取不带标题的数据帧。