1.介绍
本节将主要介绍Python中的常用第三方库。这些库都是实现了各种计算功能的开源库,它们极大地丰富了Python的应用场景和计算能力,这里主要介绍NumPy、pandas和Matplotlib三个库的基础使用。其中NumPy是Python用来进行矩阵运算、高维度数组运算的数学计算库;pandas是Python用来进行数据预处理、数据操作和数据分析的库;Matplotlib是简单易用的数据可视化库,包含了丰富的数据可视化功能。接下将会逐个介绍这些库的简单应用。
1.1 NumPy
NumPy中文官网:https://www.numpy.org.cn/
NumPy是使用Python进行科学计算的基础包。它包含如下的内容:
一个强大的N维数组对象。
复杂的(广播)功能。
用于集成C / C ++和Fortran代码的工具。
有用的线性代数,傅里叶变换和随机数功能。
除了明显的科学用途外,NumPy还可以用作通用数据的高效多维容器。可以定义任意数据类型。这使NumPy能够无缝快速地与各种数据库集成。
NumPy是在BSD许可下获得许可的,允许重用而不受限制。
1.2 pandas
pandas中文官网:https://pypandas.cn/
pandas库在数据分析中是非常重要和常用的库,它利用数据框让数据的处理和操作变得
简单和快捷,在数据预处理、缺失值填补、时间序列、可视化等方面都有应用。接下来简单
介绍pandas的使用方法,包括如何生成序列和数据表格、数据聚合与分组运算及数据可视化
功能等。pandas库在导入后经常使用pd来代替。
1.3 Matplotlib
Matplotlib中文官网:https://matplotlib.org.cn/
Matplotlib是Python的绘图库,其具有丰富的绘图功能,pyplot是其中的一个模块,它
提供了类似MATLAB的绘图接口,能够绘制2D、3D等丰富图像,是数据可视化的好帮手,
接下来简单介绍其使用方法。
1.4 sklearn (scikit-learn)
sklearn (scikit-learn) 是基于 Python 语言的机器学习工具
简单高效的数据挖掘和数据分析工具,可供大家在各种环境中重复使用
建立在 NumPy ,SciPy 和 matplotlib 上,开源,可商业使用 - BSD许可证
GitHub Pages(国外): https://sklearn.apachecn.org
Gitee Pages(国内): https://apachecn.gitee.io/sklearn-doc-zh
第三方站长[网站],sklearn 中文文档: http://www.scikitlearn.com.cn
2. 机器学习模型初探
针对待分析的数据集,利用机器学习算法进行建模和分析的步骤其实也很固定,下面先
来看一个实际的机器学习应用案例。
假设房子的价格只跟面积有关,表1-1给出了一些房子的面积和价格之间的数据,请计
算出40㎡的房屋价格。
import numpy as np
import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
x=np.array([56,32,78,160,240,89,91,69,43])
y=np.array( [90,65,125,272,312,147,159,109,78])
#数据导入与处理,并进行数据探索
X=x.reshape(-1,1)
Y=y.reshape(-1,1)
plt.figure(figsize=(4,3))#初始化图像窗口
plt.scatter(X,Y,s=50)#原始数据的图
# plt.title("原始数据的图")
plt.title("Raw Data")
plt.show()
#训练模型和预测
model=LinearRegression()
model.fit(X,Y)
x1=np.array([40,]).reshape(-1,1) #带预测数据
xl_pre=model.predict(np.array(x1)) #预测面积为40m2时的房价
#数据可视化,将预测的点也打印在图上
plt.figure(figsize=(4,3))
plt.scatter(X,Y)#原始数据的图
b=model.intercept_ #截距
a=model.coef_ #斜率
y=a*X+b#原始数据按照训练好的模型画出直线
plt.plot(X,y)
y1=a*x1+b
plt.scatter(x1,y1,color='r')
plt.show()
运行程序后,可获得当房子面积为40m2时,模型的预测值为79.59645966,即价格约为79.59万元。
以上是对一元线性回归的实现方法。但在现实中,房价的影响因素太多,不仅跟面积有关,还跟地理位置有关,跟小区容积率等也有关,这就要用到多元线性回归和机器学习进行拟合。
在机器学习中,常用的学习方法除了一元线性回归、多元线性回归模型,还有逻辑回归、聚类、决策树、随机向量、支持向量机、朴素贝叶斯等模型,这些模型的使用步骤基本类似,步骤如下:
①数据预处理和探索;
②数据特征工程:
③建立模型;
④训练模型;
⑤模型预测;
⑥评价模型。
如上面针对房屋价格预测的一元线性回归模型,就是经过了5个步骤。
(1)数据预处理和探索:即整理数据,将数据处理为适合模型使用的数据格式。
(2)建立模型:利用model=LinearRegression()建立线性回归模型。
(3)训练模型: model.fit (x,y) 。
(4)模型预测: model.predict ( [ [a] ] )。
(5)评价模型:利用可视化方式直观地评价模型的预测效果。
在实际的机器学习模型应用过程中,数据预处理和探索、数据特征工程这两部分是工作量最大的,所以在机器学习的模型使用过程中,将对数据进行充分理解、将数据整理为合适的数据格式,以及从数据中提取有用的特征,往往消耗大量的时间,最后就是对建立的模型进行有效评估。