十分钟机器学习与python实践

第一章 监督学习

第一节 鸢尾花数据集的基本分析与可视化

  • 首先我们以sklearn自带的鸢尾花数据集为对象, 载入数据:
from sklearn.datasets import load_iris

iris_dataset = load_iris() ###使用内置函数载入鸢尾花数据集

fs = iris_dataset['data'] ###取出特征矩阵
lb = iris_dataset['target'] ###取出标签

print(fs.shape) ###打印特征维度

print(lb) ###打印标签

十分钟机器学习与python实践_第1张图片

  •  由于原始数据有4维的特征,在深入分析数据特征和标签之间的关系时,借助原始特征来查看数据分布;
import pandas as pd
import matplotlib.pyplot as plt

iris_df = pd.DataFrame(fs, columns=iris_dataset.feature_names)

###通过特征之间的关系观察原始数据是否可分###
pd.plotting.scatter_matrix(iris_df,c=lb,figsize=(15,15),marker='o',hist_kwds={'bins':20},s=60,alpha=.6)

###保存高质量图像
plt.savefig('sc_plot.png',dpi=300)



上述结果表明,利用花瓣和花萼的测量数据基本可以将三个类别区分开,同时这也说明机器学习模型很可能可以学会区分它们。

 

  • 在上述基础之上,我们建立简单的分类模型来实现鸢尾花的预测分类。
from sklearn.model_selection import train_test_split

###划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(fs, lb, random_state=0)

###查看训练集和测试集信息
print("X_train shape: {}".format(X_train.shape))
print("y_train shape: {}".format(y_train.shape))
print("X_test shape: {}".format(X_test.shape))
print("y_test shape: {}".format(y_test.shape))

十分钟机器学习与python实践_第2张图片

from sklearn.neighbors import KNeighborsClassifier
import numpy as np

###建立KNN分类器
knn = KNeighborsClassifier(n_neighbors=3)

###基于训练集数据拟合模型
knn.fit(X_train, y_train)

###使用训练好的模型预测数据
y_pred = knn.predict(X_test)

###输出预测结果及准确率
print("Test set predictions:\n {}".format(y_pred))
print("Test set score: {:.4f}".format(np.mean(y_pred == y_test))) ###使用numpy 
print("Test set score: {:.4f}".format(knn.score(X_test, y_test))) ###使用KNN中自带的函数

 

至此,我们就完成了对于iris鸢尾花数据集的初探,后续教程会继续深入探讨更多的算法及其相应的python实现。博主旨在提供一系列的有关机器学习的基础知识和相应的python实现,希望能让普通人也迅速上手和理解机器学习与数据分析,欢迎讨论。

你可能感兴趣的:(机器学习,python)