继续学习这本书,这一章主要是主要是如何加载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——暂时用不到就不记录了