如何将虹膜数据集的熊猫版本转换为sk-learn
使用的格式?
#Seaborn dataset
import seaborn as sns
iris_seaborn = sns.load_dataset("iris")
sepal_length sepal_width petal_length petal_width species
0 5.1 3.5 1.4 0.2 setosa
1 4.9 3.0 1.4 0.2 setosa
2 4.7 3.2 1.3 0.2 setosa
3 4.6 3.1 1.5 0.2 setosa
4 5.0 3.6 1.4 0.2 setosa
Sci-kit学习:
#sk-learn dataset
from sklearn.datasets import load_iris
iris_sklearn = load_iris()
[Out] array([[5.1, 3.5, 1.4, 0.2],
[4.9, 3. , 1.4, 0.2],
[4.7, 3.2, 1.3, 0.2],
[4.6, 3.1, 1.5, 0.2],
[5. , 3.6, 1.4, 0.2]])
iris_sklearn.target[0:5]
[Out] array([0, 0, 0, 0, 0])
我知道这些步骤正在分别使用sklearn.preprocessing.MinMaxScaler
和sklearn.preprocessing.LabelEncoder
分别用于数字和分类数据来规范化列。但是,除了对每一列进行处理然后与zip()
放在一起之外,我不知道有什么更有效的方法。
感谢您的帮助!
答案 0 :(得分:2)
您可以factorize
标签,然后将基础numpy
数组用于其余数据:
target = pd.factorize(iris_seaborn.species)[0]
# alternatively:
# target = pd.Categorical(iris_seaborn.species).codes
# or
# target = iris_seaborn.species.factorize()[0]
data = iris_seaborn.iloc[:,:-1].values
# look at start of data:
>>> data[:5,:]
array([[5.1, 3.5, 1.4, 0.2],
[4.9, 3. , 1.4, 0.2],
[4.7, 3.2, 1.3, 0.2],
[4.6, 3.1, 1.5, 0.2],
[5. , 3.6, 1.4, 0.2]])
# and of target:
>>> target[:5]
array([0, 0, 0, 0, 0])