最近,有几位读者粉丝问我:你文章中使用的数据集在哪里?哪来的?能不能发给我们?快,等不及了!事实上,我用的数据集基本都是R和Python自带的。他们非常适合学习和测试代码。
今天就来说说如何获取一些可以用于示例的数据集进行机器学习学习呢?我将告诉大家如何使用R和Python中自带的数据集,如何查看这些数据集的基本信息,以及如何进行一些简单的数据分析操作,比如主成分分析(PCA)。我们将以著名的iris
数据集为例,这个数据集非常适合用来演示数据科学的基本操作。
1. R中的自带数据集
R语言的datasets
包里包含了许多经典的数据集,适合初学者用来练手。你只需调用data()
函数就能轻松使用这些数据集。
加载和查看数据集
首先,我们来加载iris
数据集,并将其赋值给一个新的变量名。这样做可以更清晰地管理和引用数据。
# 加载iris数据集并赋值给新的变量名
data(iris)
iris_data <- iris
# 查看新变量的前几行
head(iris_data)
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3.0 1.4 0.2 setosa
## 3 4.7 3.2 1.3 0.2 setosa
## 4 4.6 3.1 1.5 0.2 setosa
## 5 5.0 3.6 1.4 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa
查看数据集的基本信息
加载完数据集后,我们通常需要了解它的结构、数据类型和统计信息。以下是几种查看数据集基本信息的方法:
# 查看新变量的数据集结构
str(iris_data)
## 'data.frame': 150 obs. of 5 variables:
## $ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
## $ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
## $ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
## $ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
## $ Species : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
# 查看新变量的数据集摘要信息
summary(iris_data)
## Sepal.Length Sepal.Width Petal.Length Petal.Width
## Min. :4.300 Min. :2.000 Min. :1.000 Min. :0.100
## 1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600 1st Qu.:0.300
## Median :5.800 Median :3.000 Median :4.350 Median :1.300
## Mean :5.843 Mean :3.057 Mean :3.758 Mean :1.199
## 3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100 3rd Qu.:1.800
## Max. :7.900 Max. :4.400 Max. :6.900 Max. :2.500
## Species
## setosa :50
## versicolor:50
## virginica :50
##
##
##
# 查看新变量的数据集的维度
dim(iris_data)
## [1] 150 5
保存数据集
如果你需要将数据集保存到本地,可以使用write.csv()
函数:
# 将新变量的数据集保存为CSV文件
write.csv(iris_data, file = "iris_data.csv", row.names = FALSE)
使用PCA进行数据分析
接下来,我们使用主成分分析(PCA)来降低iris
数据集的维度。这是一种非常有用的技术,可以帮助我们将高维数据转换为低维数据,以便更容易地进行可视化和分析。
# 载入需要的库
library(ggplot2)
# 进行PCA分析
iris_pca <- prcomp(iris_data[, 1:4], center = TRUE, scale. = TRUE)
# 查看PCA结果的摘要
summary(iris_pca)
## Importance of components:
## PC1 PC2 PC3 PC4
## Standard deviation 1.7084 0.9560 0.38309 0.14393
## Proportion of Variance 0.7296 0.2285 0.03669 0.00518
## Cumulative Proportion 0.7296 0.9581 0.99482 1.00000
# 可视化PCA结果
pca_data <- as.data.frame(iris_pca$x)
pca_data$Species <- iris_data$Species
ggplot(pca_data, aes(x = PC1, y = PC2, color = Species)) +
geom_point(size = 2) +
labs(title = "PCA of Iris Dataset", x = "Principal Component 1", y = "Principal Component 2")
2. Python中的自带数据集
Python中的scikit-learn
库同样提供了很多经典的数据集。通过调用这些数据集,我们可以轻松进行各种机器学习实验。
加载和查看数据集
我们可以使用scikit-learn
的load_iris()
函数来加载数据集,并将其赋值给一个新变量。
from sklearn.datasets import load_iris
# 加载iris数据集并赋值给新的变量名
iris_dataset = load_iris()
# 查看数据集的键
print(iris_dataset.keys())
## dict_keys(['data', 'target', 'frame', 'target_names', 'DESCR', 'feature_names', 'filename', 'data_module'])
查看数据集的基本信息
通过访问数据集对象的属性,我们可以查看数据集的详细信息:
# 特征名称
print(iris_dataset.feature_names)
## ['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']
# 目标名称(分类标签)
print(iris_dataset.target_names)
## ['setosa' 'versicolor' 'virginica']
# 数据集的形状
print(iris_dataset.data.shape)
## (150, 4)
# 数据集的前几行
print(iris_dataset.data[:5])
## [[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]]
保存数据集
我们使用pandas
库将数据集转换为DataFrame后,可以很方便地将其保存为CSV文件:
import pandas as pd
# 将数据集转换为DataFrame
iris_df = pd.DataFrame(data=iris_dataset.data, columns=iris_dataset.feature_names)
# 添加目标列
iris_df['target'] = iris_dataset.target
# 保存为CSV文件
iris_df.to_csv("iris_dataset.csv", index=False)
总结
使用R和Python自带的数据集,可以让我们在学习数据分析和机器学习的过程中少一些数据准备的麻烦,更专注于算法和模型的应用。今天我们以iris
数据集为例,演示了如何加载、查看、保存数据集,并进行了简单的主成分分析(PCA)。这些技巧对于初学者和有经验的数据科学家都是非常有用的工具。如果你有任何其他问题或想了解更多内容,欢迎在评论区留言!
感谢关注,你的支持是我不懈的动力!