栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python金融分析小知识(31)——机器学习之KNN分类算法的使用

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python金融分析小知识(31)——机器学习之KNN分类算法的使用

Hello 大家好,我是一名新来的金融领域打工人,日常分享一些python知识,都是自己在学习生活中遇到的一些问题,分享给大家,希望对大家有一定的帮助!

哈喽大家好,今天是我第一次该大家介绍机器学习算法,以前我都是在讲一些数据分析的小知识等等,今天给大家带来我经常遇到的KNN机器学习算法的使用。

1.KNN基础介绍

KNN(K-Nearest Neighbor)是机器学习算法中一种较为简单的算法,其主要思想就是通过识别k个最近距离的点(基于欧几里得距离)来进行预测,该算法既可以用于分类也可以用于回归。

2.KNN算法用于分类 

下面我通过代码来向大家介绍KNN在分类任务中的应用:

from sklearn.datasets import load_iris
from sklearn.neighbors import KNeighborsClassifier #导入KNN分类模型

关于iris数据集的内容大家可以参考我之前的文章:

python金融分析小知识(28)——使用seaborn绘制线性回归图

iris = load_iris() #导入iris数据集
iris
#将数据的特征与标签分别赋值给X,y
X, y = iris.data, iris.target

我们来看看特征与标签:

 

# 拆分数据集(训练集+测试集)
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y) #拆分的比例用默认的
# 创建KNN分类器 参数保持默认 默认为5个邻居
knn_clf = KNeighborsClassifier()
# 训练模型
knn_clf.fit(X_train, y_train)

 查看准确率:

 

在这里之前我们所使用的KNN参数都是默认的参数,默认的参数不一定可以带来最大的准确率,所以接下来我们需要进行网格搜索,寻找模型的最优参数:

# 下面使用网格搜索进行参数分析(邻居的数量参数的分析)
from sklearn.model_selection import GridSearchCV
n_neighbors = list(range(1,11,1)) #指定参数的值
cv = GridSearchCV(estimator=KNeighborsClassifier(), param_grid={'n_neighbors':n_neighbors}, cv=5) #进行五折交叉验证
cv.fit(X,y) #使用网格搜索拟合数据集
cv.best_params_ #查看最优的参数

打印结果:

 

这说明当参数n_neughbors参数是6时模型可以取得最高的准确率,下面我们来试试参数取6:

# 创建KNN分类器 参数保持默认 采用最佳参数
knn_clf2 = KNeighborsClassifier(n_neighbors=6)
# 训练模型
knn_clf2.fit(X_train, y_train)

 

查看准确率,看准确率是不是提高了一些:

3.cv交叉验证的几个主要属性

我们可以查看交叉验证的几个主要属性:

好啦今天的文章就分享到这里啦!下一期讲讲KNN的回归算法。 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/966047.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号