继续学习这本书,这一章主要是主要是如何加载scikit-learn库中的自带的一些数据集,以及如何创建仿真数据集,其他的几个部分是加载CSV文件,Excel文件,加载json文件,查询SQL数据库,这几个部分的我也不会用到的,所以后面就暂时不写了。
#这一章主要是学习如何加载数据的,尽管在Python生态体系中有很多加载数据的方法,但本书会着重使用pandas库的
#一些方法来加载外部数据,并使用scikit-learn(Python中的一个开源的机器学习库)来生成仿生数据
#2.1加载样本数据集
#问题描述:加载已有的样本数据集
#加载scikit-learn的shujuj
from sklearn import datasets
#加载手写数字数据集
digits = datasets.load_digits()
#创建特征矩阵
features = digits.data
#创建目标向量
target = digits.target
#查看第一个样本数据
features[0] #不会显示出来
print(features[0]) #显示出来
#结果
# [ 0. 0. 5. 13. 9. 1. 0. 0. 0. 0. 13. 15. 10. 15. 5. 0. 0. 3.
# 15. 2. 0. 11. 8. 0. 0. 4. 12. 0. 0. 8. 8. 0. 0. 5. 8. 0.
# 0. 9. 8. 0. 0. 4. 11. 0. 1. 12. 7. 0. 0. 2. 14. 5. 10. 12.
# 0. 0. 0. 0. 6. 13. 10. 0. 0. 0.]
#讨论
# 在研究机器学习算法或方法时,大部分人不愿意把时间花在加载、转换、清洗从现实生活中得到的数据集上
# ,幸运的是,scikit-learn预置了一些很容易加载的常见数据集,这些数据集被称为“玩具”(toy)数据集,因为它们
# 比现实中的数据集要小得多,干净得多,scikit-learn中流行的玩具数据集有:
#
# load_boston
# 503个波士顿房价的观测值,这是一个用于研究回归算法的优质数据集
#
# load_iris
# 包含150个鸢尾花尺寸的观测值,这是一个用于研究分类算法的优质数据集
#
# load_digits
# 包含1797个手写数字图片的观测值,这是一个用于研究图像分类算法的优质数据集
#################################################################################
#2.2创建仿真数据集
#问题描述:生成一个仿真数据集
#加载库
from sklearn.datasets import make_regression
# 生成特征矩阵 目标向量以及模型系数
features,target,coefficients = make_regression(n_samples= 100,
n_features= 3,
n_informative=3,
n_targets=1,
noise= 0.0,
coef= True,
random_state=1)
#查看特征矩阵和目标向量
print('Feature Matrix\n',features[:3])
print('Target Vector\n',target[:3])
#结果
# Feature Matrix
# [[ 1.29322588 -0.61736206 -0.11044703]
# [-2.793085 0.36633201 1.93752881]
# [ 0.80186103 -0.18656977 0.0465673 ]]
# Target Vector
# [-10.37865986 25.5124503 19.67705609]
#如果需要创建一个仿真数据集来做分类,可以使用make_classification
#加载库
from sklearn.datasets import make_classification
#生成特征矩阵和目标向量
features,target =make_classification(n_samples= 100,
n_features= 3,
n_informative= 3,
n_redundant=0,
n_classes=2,
weights=[.25,.75],
random_state=1)
# 查看特征矩阵和目标向量
print('Feature Matrix\n',features[:3])
print('Target Vector\n',target[:3])
#结果
# Feature Matrix
# [[ 1.06354768 -1.42632219 1.02163151]
# [ 0.23156977 1.49535261 0.33251578]
# [ 0.15972951 0.83533515 -0.40869554]]
# Target Vector
# [1 0 0]
#最后如果你想要一个适合做聚类处理的数据集,scikit-learn 提供了make_blobs
#加载库
from sklearn.datasets import make_blobs
#生成特征矩阵和目标向量
features, target = make_blobs(n_samples= 100,
n_features=2,
centers= 3,cluster_std=0.5,
shuffle=True,
random_state=1)
# 查看特征矩阵和目标向量
print('Feature Matrix\n',features[:3])
print('Target Vector\n',target[:3])
#结果
# Feature Matrix
# [[ -1.22685609 3.25572052]
# [ -9.57463218 -4.38310652]
# [-10.71976941 -4.20558148]]
# Target Vector
# [0 1 1]
#对于make_blobs来说,centers参数决定了要生成多少个聚类,使用matplotlib可视化库,能将
#make_blobs生成的聚类可视化地显示出来,如下图所示。
#加载库
import matplotlib .pyplot as plt
#查看散点图
plt.scatter(features[:,0],features[:,1],c=target)
plt.show()
########################################################################
#2.3加载CSV文件
#问题描述:加载以逗号为分隔符(Comma-Separated Values,CSV)的文件
#加载库
import pandas as pd
#创建URL
# /url= 'https://tinyurl.com/simulated_data' #书里这个网址打不开,网上找了一个能打开的
url= 'https://github.com/nfmcclure/tensorflow_cookbook/raw/master/01_Introduction/07_Working_with_Data_Sources/birthweight_data/birthweight.dat'
#加载数据集
dataframe =pd.read_csv(url)
#查看前两行数据
dataframe.head(2)
print(dataframe.head(2))
#结果:
# LOW\tAGE\tLWT\tRACE\tSMOKE\tPTL\tHT\tUI\tBWT
# 0 1\t28\t113\t1\t1\t1\t0\t1\t709
# 1 1\t29\t130\t0\t0\t0\t0\t1\t1021
####################################################################
#2.4加载excel文件 这个部分程序没跑通,暂时记录一下
#问题描述:加载一个excel数据表
#加载库
import pandas as pd
#创建一个url
url='https://tinyurl.com/simulated_excel' #这个依然打不开
#加载数据
dataframe = pd.read_excel(url,sheetname= 0,header=1)
#查看前两行
dataframe.head(2)
####################################################################
#2.5加载 JSON文件——暂时用不到就不记录了
# 百度了一下 javascript中的对象和数组,所以这两种结构就是对象和数组2种结构,
# 通过这两种结构可以表示各种复杂的结构
#2.6加载SQL——暂时用不到就不记录了