文档详情

Python程序设计课件 第十二章 机器学习.pptx

发布:2025-03-08约1.52千字共21页下载文档
文本预览下载声明

;本章知识点导图;12.1入门案例;针对该数据分布情况和所提出的问题,可以使用下面的程序进行建模和预测。

导入相应的库。;建立模型并训练模型。;我们不仅预测出来40平米房价的大概价格,其实我们还可以把这个线性关系中的参数a、b也求出来。具体代码如下。;以上是对一元线性回归的实现方法。

但在现实中,房价的影响因素太多,不仅跟面积有关,还跟地理位置有关,跟小区容积率等等都有关,这就要用到多元线性回归进行拟合了。

在机器学习中,常用到的学习方法除了一元线性回归、多元线性回归模型,还有逻辑回归、聚类、决策树、随机向量、支持向量机、朴素贝叶斯等模型,这些模型的使用基本类似,都有以下的步骤。以上面的一元线性回归模型为例:

1.整理数据:数据预处理和探索,将数据处理为适合模型使用的数据格式

2.建立模型:model=LinearRegression()

3.训练模型:model.fit(x,y)

4.模型预测:model.predict([[a]])

5.评价模型:利用可视化方式直观的评价模型的预测效果

在实际的机器学习模型应用过程中,数据预处理与探索及特征工程部分是工作量最大的任务,所以在机器学习的模型使用过程中,将对数据进行充分理解、将数据整理为合适的数据格式,以及从数据中提取有用的特征,往往会消耗大量的时间。最后是对建立的模型进行有效评估。;12.2监督学习和无监督学习;12.2.1监督学习;该数据是一个二分类问题,即判断该病人是否患有糖尿病,是即为阳性(1),否即为阴性(0)。

对于该二分类问题,我们可以采用决策树、逻辑回归、随机森林、XGBoost、lightGBM、catBoost等模型来处理。我们这里采用XGBoost算法建模该问题。

首先我们导入数据。;所以我们现在的数据集输入特征X和输出标签Y都是767条。代码如下。;fromxgboostimportXGBClassifier

model=XGBClassifier()

model.fit(X_train,y_train);现在,我们可以预测新的病例X_new是否患有糖尿病了。我们继续使用model.predict()来预测。

这里我们首先需要对数据进行预处理,因为我们前面预测数据时不是一条一条的数据输入,而是将测试集整体输入,而我们这里新来的病例不是一个数据集,而是只有一条信息的数据,所以???形式上我们首先要符合输入的数据形式。我们先来看我们的测试集的数据形式。;通过输出的数据形式我们发现X_test的形式是每条数据用一个列表表示,再将所有的数据用一个大列表包裹起来,数据形式是列表内的每个元素仍然是列表,即列表套列表。那么如果只有一条数据,那应该也是列表套列表的形式,即列表里只有一个列表元素。而我们的X_new只有一层列表,所以我们需要对新来的这条病人数据X_new再套一层列表。;frommatplotlibimportpyplot

fromxgboostimportplot_importance

plot_importance(model)

pyplot.show();12.2.2无监督学习;fromsklearn.clusterimportKMeans

?

model=KMeans(n_clusters=2)

model.fit(data);训练完成之后,我们可以查看我们的原始数据data都分在了哪个簇里。;12.3机器学习的几种常见算法;;具体的应用案例请读者自行查阅资料学习,或者参见作者编写的另一本著作《Python机器学习算法与实战》。

显示全部
相似文档