Python机器学习
一、环境准备
- 安装python
- 安装一些必须的库
sudo pip3 install numpy scipy matplotlib ipython pandas scikit-learn
在windows
系统中安装时需要先安装Numpy+MKL
安装包,才能安装Scipy
常用库说明
- Numpy:基础科学计算库
用于进行科学计算的库,它的功能包括高维数组计算、线性代数计算、傅里叶变换以及产生伪随机数等。
import numpy
# 给变量i赋值为一个数组
i = numpy.array([[1,2,3],[3,54,5]])
# 将i打印出来
print("i:\n{}".format(i))
- Scipy:强大的科学计算工具集
Scipy是一个Python中用于进行科学计算的工具集,它有很多功能,如计算统计学分布、信号处理、计算线性代数方程等。scikit-learn需要使用Scipy来对算法进行执行,其中用到最多的就是Scipy中的sparse函数了
import numpy as np
from scipy import sparse
# 用numpy的eye函数生成一个6行6列的对角矩阵,矩阵中对角线上的元素数值为1,其余都是0
matrix = np.eye(6)
# 把np数组转化为CSR格式的Scipy系数矩阵
sparse_matrix = sparse.csr_matrix(matrix)
print("对角矩阵:\n{}".format(matrix))
print("\nsparse存储的矩阵:\n{}".format(sparse_matrix))
运行结果:
- pandas:数据分析的利器
pandas是一个python中用于进行数据分析的库,它可以生成类似Excel表格式的数据表,而且可以对数据表进行修改操作
import pandas
data = {"Name":["小李","小王","小张"],
"City":["长沙","宁波","上海"],
"Age":[18,19,20]}
data_frame = pandas.DataFrame(data)
display(data_frame)
display(data_frame[data_frame.Age != 19])
运行结果:
- matplotlib:画出优美的图形
matplotlib是一个python的绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形,能够输出包括折线图、散点图、直方图等
%matplotlib inline
# 激活matplotlib
import matplotlib.pyplot as plt
x = np.linspace(-20,20,10) # 生成一个从-20到20,元素数为10的等差数列
y = x**3 + 2*x**2 + 6*x + 5
plt.plot(x,y, marker = "o")
在代码开头的
%matplotlib inline 允许Jupter Notebook
进行内置实时绘图。如果不写这一行代码,则需要在最后加入plt.show()
这一句
运行结果:
- scikit-learn:非常流行的python机器学习库
scikit-learn是一个简历在Scipy基础上的用于机器学习的python模块。在不同的应用领域中,已经发展出为数众多的基于Scipy的工具包,它们被统一称为Scikits。
scikit-learn包含众多顶级机器学习算法,它主要有六大类的基本功能,分别是分类、回归、聚类、数据降维、模型选择和数据预处理。
二、K最近邻算法
# 导入数据生成器
from sklearn.datasets import make_blobs
# 导入KNN分类器
from sklearn.neighbors import KNeighborsClassifier
# 导入画图工具
import matplotlib.pyplot as plt
# 导入数据集拆分工具
from sklearn.model_selection import train_test_split
# 生成样本数为200,分类为2的数据集
data = make_blobs(n_samples=200, centers=2, random_state=8)
X,y = data
# 将生成的数据集进行可视化
plt.scatter(X[:,0], X[:,1], c=y, cmap=plt.cm.spring, edgecolor='k')
plt.show()