python机器学习相关的操作 numpy,GridSearchCV(网格搜索)等
numpy切片操作
视频讲解
numpy 简单入门
GridSearchCV的简单使用视频讲解
SVM参数优化
metrics中的precision_score,recall_score,accuracy_score
import numpy as np
# genfromtxt是一种导入数据的方式,数据加载的时候能够处理丢失数据
data = np.genfromtxt("./data/spam.data",delimiter=" ")
# numpy的切片操作!!!
# 取行
# numpy的切片操作根普x通的列表不同,例如data[0,1]取的是第0行,1列的数据
# 而data[0:2:1]表示从第0行取到第1行,间隔为1
# data[[1,3,5]] 取 1 3 5 索引行
# 取列
# data[行,列]
# data[:,1]取第一列
# data[:,[1,2,3]]取1,2,3列
x = data[:,:-1] # 取除最后一列的所有数据
y = data[:,-1] # 取最后一列数据
关于GridSearch的使用和SVM交叉验证
if __name__ == '__main__':test_classifiers = ['NB', 'KNN', 'LR', 'RF', 'DT', 'SVM', 'GBDT']# 这里测试了朴素贝叶斯,k近邻,逻辑回归,随机森林,支持向量机等五种方法classifiers = {'NB': naive_bayes_classifier,'KNN': knn_classifier,'LR': logistic_regression_classifier,'RF': random_forest_classifier,'SVM': svm_classifier,}print("训练集的规模:",x_train.shape)print("测试集的规模",x_test.shape)print("*"*28+"下面开始测试"+"*"*28)for classifier in classifiers:print("*"*28+classifier+"*"*28)time1 = time.time()test_model = classifiers[classifier](x_train,y_train)timeAll = time.time() - time1print("training time: %.4fs"%(timeAll))# 预测的数据predict = test_model.predict(x_test)'''精确率是针对我们预测结果而言的,它表示的是预测为正的样本中有多少是真正的正样本。那么预测为正就有两种可能了,一种就是把正类预测为正类(TP),另一种就是把负类预测为正类(FP)也就是而召回率是针对我们原来的样本而言的,它表示的是样本中的正例有多少被预测正确了。那也有两种可能,一种是把原来的正类预测成正类(TP),另一种就是把原来的正类预测为负类(FN)。其实就是分母不同,一个分母是预测为正的样本数,另一个是原来样本中所有的正样本数。讲解网站:https://www.zhihu.com/question/19645541'''# 可以用metrics来对测试数据的准确度等进行判断,其中 accuracy = model.scoreprecision = metrics.precision_score(y_test,predict)recalll = metrics.recall_score(y_test,predict)print("精确率为:%.2f%% 召回率为:%.2f%%"%(precision*100,recalll*100))accuracy = metrics.accuracy_score(y_test,predict)print("准确率:%.2f%% %.2f%%"%(accuracy*100,100*test_model.score(x_test,y_test))) # accuracy就是跟正确率一样# 这里是对SVM的交叉验证方法进行学习测试from sklearn.svm import SVCfrom sklearn.model_selection import GridSearchCVfrom sklearn.preprocessing import StandardScaler# 创建svm模型model = SVC(kernel='rbf',probability=True)# 进行标准化处理transfer = StandardScaler()x_train = transfer.fit_transform(x_train)x_test = transfer.transform(x_test)''' !!!!注意这里是用网格搜索找出最优参数!!!!! '''# 1.找出参数有可能的值,并写在param_grid字典当中C = []for i in range(-5,15+1,2):C.append(2**i)gama = []for i in range(-15,3+1,2):gama.append(2**i)param_grid = { 'C':C , 'gamma':gama}# 2.进行网格搜索,需要调用GridSearchCVgrid_search = GridSearchCV(model,param_grid,cv=5,n_jobs=1,verbose=1) # 输出训练过程# 3.训练数据grid_search.fit(x_train, y_train)best_parameters = grid_search.best_params_# 4.可以输出最优参数下模型评分,最优模型,最优模型在第几个print("best_index",grid_search.best_index_)print("best_score",grid_search.best_score_)print("best_params", grid_search.best_params_)print("best_estimator",grid_search.best_estimator_)# 5.将最优参数写入模型当中model = SVC(kernel='rbf',probability=True,C=best_parameters['C'],gama = best_parameters['gama'])model.fit(x_train,y_train)predict = model.predict(x_test)# 当分类的y不止0 1的时候,也就是多任务分类。#可在添加 metrics.precision_score(x_test,predict,,average= 'macro')precision = metrics.precision_score(x_test,predict)recalll = metrics.recall_score(x_test,predict)accuracy = metrics.accuracy_score(x_test,predict)print("*"*28+"svm_cross_validation"+"8"*28)print("精确度:%.2f%% 召回率: %.2f%%"%(precision*100,recalll*100))print("准确度:%.2f%%"%(accuracy*100))
numpy.unique
pandas获取列名
获取pandas列名的几种方法
import pandas as pdrow = ["a","b","c"]
cols = ["琼楼","玉宇","飞天"]
df = pd.DataFrame(index=row,columns=cols)
print(type(df.columns.values))
print(df.columns.values)
if "琼楼" in df.columns.values:print("Yes")
pandas让内容全部显示
#显示所有列
pd.set_option('display.max_columns', None)#显示所有行
pd.set_option('display.max_rows', None)#设置value的显示长度为100,默认为50
pd.set_option('max_colwidth',100)
python机器学习相关的操作 numpy,GridSearchCV(网格搜索)等相关推荐
- python机器学习库sklearn——参数优化(网格搜索GridSearchCV、随机搜索RandomizedSearchCV、hyperopt)
分享一个朋友的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!大家可以看看是否对自己有帮助:点击打开 全栈工程师开发手册 (作者:栾鹏) python数据挖掘系列教程 优化的相关的知识内容可以参 ...
- [转载] python机器学习库sklearn——参数优化(网格搜索GridSearchCV、随机搜索RandomizedSearchCV、hyperopt)
参考链接: Python中的网格搜索优化算法 分享一个朋友的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!大家可以看看是否对自己有帮助:点击打开 全栈工程师开发手册 (作者:栾鹏) pyth ...
- kfold_机器学习gridsearchcv(网格搜索)和kfold validation(k折验证)
网格搜索算法是一种通过遍历给定的参数组合来优化模型表现的方法. 以决策树为例,当我们确定了要使用决策树算法的时候,为了能够更好地拟合和预测,我们需要调整它的参数.在决策树算法中,我们通常选择的参数是决 ...
- sklearn GridSearchCV网格搜索案例与代码
文章目录 准备数据 网格搜索参数 评估结果 全部代码 需要的包如下: import pandas as pd import numpy as np from sklearn.ensemble impo ...
- 机器学习系列之交叉验证、网格搜索
第一部分:交叉验证 机器学习建立和验证模型,常用的方法之一就是交叉验证.在机器学习过程中,往往数据集是有限的,而且可能具有一定的局限性.如何最大化的利用数据集去训练.验证.测试模型,常用的方法就是交叉 ...
- 几种机器学习常用调参方式对比(网格搜索,随机搜索,贝叶斯优化)
网格搜索(GridSearchCV): grid search就是穷举,穷举所有得超参组合 Ex:当对决策树调参,若只对一个超参优化,如树的最大深度,尝试[3,5,7],则可表示为 若还想对分裂标准进 ...
- python网格搜索核函数_机器学习笔记——模型调参利器 GridSearchCV(网格搜索)参数的说明...
算法 数据结构 机器学习笔记--模型调参利器 GridSearchCV(网格搜索)参数的说明 GridSearchCV,它存在的意义就是自动调参,只要把参数输进去,就能给出最优化的结果和参数.但是这个 ...
- 【数学建模】机器学习预测算法(KNN、随机森林、网格搜索对决策树、支持向量机)(Python代码实现)【2021华为杯】
目录 1 题目 2 数据集介绍及建模目标 3 问题 4 简化描述 5 Python代码实现 1 题目 乳腺癌是目前世界上最常见,致死率较高的癌症之一.乳腺癌的发展与雌激素受体密切相关,有研究发现,雌激 ...
- 加载svr模型_机器学习XGBoost实战,网格搜索自动调参,对比随机森林,线性回归,SVR【完整代码(含注释)+数据集见原文链接】...
建议:阅读2020.8.7的文章,完全了解GDBT和XGBT的原理. 机器学习- XGBoost,GDBT[过程:决策树,集成学习,随机森林,GDBT,XGBT,LightGBM] 本次实践内容: 数 ...
最新文章
- 100行php代码实现加密端口转发
- jquery rotate.js
- 主表关联字表,主表自增长,同时插入
- python的if not用法
- 深度解析HashMap高频面试及底层实现架构!
- linux 在不同终端之下的切换方式
- js检查元素是否包括在数组中
- python---(10) python模块的使用
- 语义解析KB-QA的方法框架
- 《符号学:原理与推演》(一)符号的构成
- 随便写了个猪八戒网的任务小助手“小八戒”,需要的拿去
- 多边形最大内接圆的简单画法
- python爬取拉勾网_使用requests爬取拉勾网python职位数据
- 基于三周加速度传感器的计步器设计
- 光云科技快麦ERP正式入选阿里云原生合作伙伴计划,赋能企业“新基建”
- 第五章 数组程序(Ivor Horton)
- 年薪 170 万阿里 P8 程序员征婚上热搜,程序员婚恋观大曝光!
- 【过关斩将】如何在工作中提高沟通能力?
- python人脸识别库_基于Python的face_recognition库实现人脸识别
- hiredis——Redis的C++库(使用教程