模型选择与调优
交叉验证:为了让被评估的模型更加准确可信

网格搜索

from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split,GridSearchCV
from sklearn.preprocessing import StandardScaler
import pandas as pddef knncls():# k-近邻预测用户签到位置# 1,读取数据data = pd.read_csv("train.csv")# print(data.head(10))#,2,处理数据# 缩小数据,查询数据筛选data = data.query("x > 1.0 & x <1.25 & y >2.5 & y < 2.75")# 处理时间数据time_value = pd.to_datetime(data["time"],unit="s")# print(time_value)# 把日期格式转换成字典格式time_value = pd.DatetimeIndex(time_value)# 3,构造一些特征data["day"] = time_value.daydata["hour"] = time_value.hourdata["weekday"] = time_value.weekday# 把时间戳特征删除data = data.drop(["time"],axis=1) # sklearn中1表示列和pandas不一样# print(data)#把签到数量少于n个目标位置删除place_count = data.groupby("place_id").count()tf = place_count[place_count.row_id > 3].reset_index()data = data[data["place_id"].isin(tf.place_id)]data = data.drop(["row_id"],axis=1)print(data)# 取出数据当中的特征值和目标值y = data["place_id"]x = data.drop(["place_id"],axis=1)# 进行数据的分割 训练集和测试集x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.25)# 特征工程(标准化)std = StandardScaler()# 对测试集和训练集的特征值进行标准化x_train = std.fit_transform(x_train)x_test = std.transform(x_test)# 进行算法流程 # 超参数knn = KNeighborsClassifier()# # fit,predict,score# knn.fit(x_train,y_train)# # 得出预测结果# y_predict = knn.predict(x_test)## print("预测的目标签到位置为:",y_predict)## # 得出准确率# print("预测的准确率:",knn.score(x_test,y_test))# 进行网格搜索# 构造一些参数的值进行搜索param = {"n_neighbors":[3,5,10]}gc = GridSearchCV(knn,param_grid=param,cv=10)gc.fit(x_train,y_train)# 预测准确率gc.score(x_test,y_test)print("在测试集上的准确率:",gc.score(x_test,y_test))print("在交叉验证中最好的结果:",gc.best_score_)print("最好的模型是:",gc.best_estimator_)print("每个超参数每次交叉验证的结果:",gc.cv_results_)return Noneif __name__=="__main__":knncls()

机器学习-分类算法-模型选择与调优09相关推荐

  1. 【机器学习】K-近邻算法-模型选择与调优

    前言 在KNN算法中,k值的选择对我们最终的预测结果有着很大的影响 那么有没有好的方法能够帮助我们选择好的k值呢? 模型选择与调优 目标 说明交叉验证过程 说明参数搜索过程 应用GirdSearchC ...

  2. 简单粗暴理解与实现机器学习之K-近邻算法(十):交叉验证,网格搜索(模型选择与调优)API、鸢尾花案例增加K值调优

    K-近邻算法 文章目录 K-近邻算法 学习目标 1.10 交叉验证,网格搜索 1 什么是交叉验证(cross validation) 1.1 分析 1.2 为什么需要交叉验证 **问题:那么这个只是对 ...

  3. 机器学习算法------1.10 交叉验证,网格搜索(交叉验证,网格搜索(模型选择与调优)API、鸢尾花案例增加K值调优)

    文章目录 1.10 交叉验证,网格搜索 学习目标 1 什么是交叉验证(cross validation) 1.1 分析 1.2 为什么需要交叉验证 2 什么是网格搜索(Grid Search) 3 交 ...

  4. 机器学习的练功方式(五)——模型选择及调优

    文章目录 5 模型选择及调优 5.1 数据增强 5.2 过拟合 5.3 交叉验证 5.4 超参数搜索--网格搜索 5 模型选择及调优 5.1 数据增强 有时候,你和你的老板说你数据不够,它是不会理你的 ...

  5. 机器学习——分类算法之K近邻+朴素贝叶斯,模型选择与调优

    目录 K-近邻算法 定义 如何求距离? 数据预处理--标准化 sklearn k-近邻算法API 案例--预测入住位置 分类问题 数据处理 k近邻算法相关问题 k值取多大?有什么影响? 优缺点 应用场 ...

  6. python人工智能——机器学习——模型选择与调优

    1.交叉验证 交叉验证:为了让被评估的模型更加准确可信 交叉验证过程 交叉验证:将拿到的数据,分为训练和验证集. 以下图为例:将数据分成5份,其中一份作为验证集.然后经过5次(组)的测试,每次都更换不 ...

  7. 机器学习-分类算法-模型的保存和加载12

    保存模型 from sklearn.datasets import load_boston from sklearn.linear_model import LinearRegression,SGDR ...

  8. ML之回归预测:利用两种机器学习算法(LiR,XGBoost(调优+重要性可视化+特征选择模型))对无人驾驶汽车系统参数(2017年的data,18+2)进行回归预测值VS真实值

    ML之回归预测:利用两种机器学习算法(LiR,XGBoost(调优+重要性可视化+特征选择模型))对无人驾驶汽车系统参数(2017年的data,18+2)进行回归预测值VS真实值 目录 输出结果 1. ...

  9. AI:人工智能领域算法思维导图集合之有监督学习/无监督学习/强化学习类型的具体算法简介(预测函数/优化目标/求解算法)、分类/回归/聚类/降维算法模型选择思路、11类机器学习算法详细分类之详细攻略

    AI:人工智能领域算法思维导图集合之有监督学习/无监督学习/强化学习类型的具体算法简介(预测函数/优化目标/求解算法).分类/回归/聚类/降维算法模型选择思路.11类机器学习算法详细分类(决策树/贝叶 ...

最新文章

  1. Streaming Big Data: Storm, Spark and Samza--转载
  2. ktm390蓝牙连接安卓_蓝牙音乐AudioTrack Session ID的获取
  3. 隐马尔科夫模型-前向算法
  4. 哈佛大学计算机生物科学,生命科学专业
  5. 华为澄清:公司副总裁未发表中美技术还差两万五千里表述
  6. 边缘计算对于基础架构和运营领导者意味着什么
  7. Java架构师之路:从码农到年薪五十万的架构师
  8. UTF-8与GBK互转,为什么会乱码
  9. 高效率OCR场景文字图片合成工具发布!
  10. 前端JQuery插件distpicker.js的部分操作使用
  11. GoJS学习-节点渐变背景色
  12. 使用IIS 共享文件
  13. Fe3O4 NPs@MIL-53|NH2-MIL-53(Sc)|NH2-MIL-53(Al)|NH2-MIL-125负载银钴合金纳米材料|氨基化mof材料
  14. 大事发生,程序员一直在守护世界
  15. android 特殊符号
  16. 阿里云 1H2G T5实例 与 腾讯云 1H2G 标准2实例 测试对比
  17. C语言中的复制函数(strcpy和memcpy)
  18. 【Docker】搭建Docker私库Harbor
  19. Spark项目实战:飞机延误预测项目
  20. 人工智能历史上的重要一步:ChatGPT影响到谷歌地位?

热门文章

  1. Mac下SourceTree导出更新文件
  2. mysql实现动态查询_mysql 实现动态查询
  3. 计算机专业英语书本笔记,英语语言学概论笔记《全集》.doc
  4. springboot yml怎么建常量_Springboot中加载自定义的yml配置文件
  5. 用html5做一个简单网页_用Python做一个简单的翻译工具
  6. linux time dev null,/dev/null丟失后
  7. unity 继承会调用start吗_【浅入浅出】Unity 雾效
  8. java加密字符串,可解密
  9. 网易云音乐一键听歌300首_网易云打卡,一键听歌300首。
  10. python做成绩表_自学Python笔记:用Python做成绩分析(2)