1.Matplotlib数据可视化基础
import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif'] = 'SimHei' #------------1散点图scatter x = np.arange(0, 1, 0.05) y = x**2 y1 = x**4 #散点图 plt.scatter(x, y) plt.show() #显示图形 ##----一张图 plt.figure(figsize=(8, 6)) #设置画布大小 plt.scatter(x, y) plt.title('散点图') #标题 plt.xlabel('x') #x轴标签 plt.ylabel('y') #y轴标签 plt.xlim(0.2, 0.6) #x轴刻度范围 plt.ylim(0, 0.4) #y轴刻度范围 plt.show() #显示图形 ##-----多图绘制 #第一步:设置画布和子图 fig = plt.figure(figsize=(12, 8)) #设置画布大小 fig.add_subplot(1, 2, 1) #子图1 #第二步:绘制图形 plt.scatter(x, y) plt.title('y=x^2') fig.add_subplot(1, 2, 2) #子图2 plt.scatter(x, y1) plt.title('y=x^4') #第三步:显示图形 plt.show() #显示图形 ##----多个函数绘制在一张图中 plt.scatter(x, y) plt.scatter(x, y1) plt.legend(['y=x^2', 'y=x^4']) #添加图例 plt.show() |
#------------2折线图plot #折线图 plt.plot(x, y) plt.show() #丰富图形 plt.plot(x, y, c='r', linestyle='--', marker='*') #c设置线条颜色。linestyle设置线条类型。marker设置点的类型 plt.title('折线图') #标题 plt.xlabel('x') #x轴标签 plt.ylabel('y') #y轴标签 plt.show() #绘制多图:散点图和折线图 ##第一步:设置画布与子图 fig = plt.figure(figsize=(4, 8)) fig.add_subplot(2, 1, 1) #子图1 ##第二步:绘制图形 plt.scatter(x, y) fig.add_subplot(2, 1, 2) #子图2 plt.plot(x, y1) ##第三步:保存、显示图形(先保存后显示) plt.savefig(r'F:\Desktop\a.png') #保存图形 plt.show() |
#------------3直方图bar data = [100, 170, 160, 250, 150, 160, 120] label = ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日'] plt.bar(range(len(data)), data) plt.xticks(range(len(data)), label) #x轴刻度 plt.xlabel('星期') #x轴标签 plt.ylabel('销售额') #y轴标签 plt.title('本周销售额') plt.show() #显示图形 |
#------------4饼图pie #饼图 plt.pie(data) plt.show() #丰富图形 plt.pie(data, labels=label, autopct='%.2f%%') #labels设置每一项名称。autopct设置指定数值的显示方式 plt.title('本周销售额饼图') plt.show() |
#------------5箱线图boxplot plt.boxplot(data) plt.show() #绘制多个箱子 data1 = [100, 170, 120, 200, 150, 160, 120] plt.boxplot([data, data1]) plt.show() |
2.使用scikit-learn构建模型
#==================1使用sklearn转换器处理数据 #------------1.1加载datasets模块中数据集 from sklearn.datasets import load_boston #sklearn库安装命令:pip install scikit-learn -i https://mirrors.aliyun.com/pypi/simple boston = load_boston() #加载波士顿房价数据 boston['data'] #特征数据 boston['target'] #标签数据 |
#------------1.2将数据集划分为训练集和测试集 from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) #按8:2的比例划分为训练集和测试集 print('训练集的特征数据形状为:', X_train.shape) print('测试集的特征数据形状为:', X_test.shape) print('训练集的标签数据形状为:', y_train.shape) print('测试集的标签数据形状为:', y_test.shape) |
#------------1.3使用sklearn转换器进行数据预处理与降维 #----1.3.1预处理 #--离差标准化处理 from sklearn.preprocessing import MinMaxScaler minmaxscaler = MinMaxScaler().fit(X_train) #提取特征,生成规则 X_train_scaler = minmaxscaler.transform(X_train) #转换特征,应用规则 X_test_scaler = minmaxscaler.transform(X_test) #转换特征,应用规则 #利用训练集生成规则,之后便可这个规则同时应用于训练集和测试集 #--标准差标准化处理 from sklearn.preprocessing import StandardScaler standardscaler = StandardScaler().fit(X_train) #提取特征,生成规则 X_train_standard = standardscaler.transform(X_train) #转换特征,应用规则 X_test_standard = standardscaler.transform(X_test) #----1.3.2降维 from sklearn.decomposition import PCA pca = PCA(n_components=8).fit(X_train_standard) #生成规则 X_train_standard_8 = pca.transform(X_train_standard) #应用规则 X_test_standard_8 = pca.transform(X_test_standard) print('X_train_standard_8的形状为:', X_train_standard_8.shape) print('X_test_standard_8的形状为:', X_test_standard_8.shape) |
#==================2构建并评价聚类模型 from sklearn.datasets import load_iris from sklearn.cluster import KMeans import matplotlib.pyplot as plt from sklearn.metrics import calinski_harabasz_score iris = load_iris() #加载鸢尾花数据 data = iris['data'] #特征数据 #构建KMeans模型并训练 model = KMeans(n_clusters=3).fit(data) model.labels_ #聚类标签 model.cluster_centers_ #聚类中心 #聚类可视化 plt.scatter(data[model.labels_==0, 0], data[model.labels_==0, 1]) plt.scatter(data[model.labels_==1, 0], data[model.labels_==1, 1]) plt.scatter(data[model.labels_==2, 0], data[model.labels_==2, 1]) plt.legend([0, 1, 2]) plt.show() #指数评价法 calinski_harabasz_score(data, model.labels_) |