机器学习pipeline总结
# -*- coding: utf-8 -*-
"""scikit-learn introduction
Automatically generated by Colaboratory.
Original file is located at
https://colab.research.google.com/drive/1quaJafg43SN7S6cNwKFr0_WYn2ELt4Ph
scikit-learn官方网站:https://scikit-learn.org/stable/
模块引入
"""
from sklearn import datasets
from sklearn.metrics import mean_squared_error, r2_score
import matplotlib.pyplot as plt
import numpy as np
"""#分类:
- SVM(support vector machine):支持向量机
- svm.SVC()
###iris数据集
- iris feature: 花萼长度,花萼宽度,花瓣长度,花瓣宽度
- iris lable: 山鸢尾,杂色鸢尾,维吉尼亚鸢尾
"""
iris = datasets.load_iris()
print('iris feature\n', iris.data[0:5])
print('iris label\n', iris.target[0:5])
"""###创建模型"""
from sklearn import svm
clf = svm.SVC()
irisX = iris.data
irisY = iris.target
clf.fit(irisX, irisY)
irisPred = clf.predict(irisX)
clf.predict([[5.1,3.5,1.4,0.2]]) #刚刚的第1个数据
"""###评估指标
- accuracy
- precision
- recall
- F1
"""
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score
print('acc is ', accuracy_score(irisY, irisPred, normalize=False)/len(irisY))
print('precision is ', precision_score(irisY, irisPred, average='macro'))
print('recall is ', recall_score(irisY, irisPred, average='macro'))
print('F1 is ', f1_score(irisY, irisPred, average='macro'))
"""#回归
- 线性回归
- 模块:linear_model.LinearRegression()
###糖尿病数据集
"""
diabetes = datasets.load_diabetes()
diabetesX = np.array([[diabetes.data[i][0]] for i in range(0,diabetes.data.shape[0])])
diabetesY = diabetes.target
print('feature\n',diabetesX[:5])
print('label\n',diabetesY[:5])
"""###创建模型"""
from sklearn import svm, linear_model
regr = linear_model.LinearRegression()
regr.fit(diabetesX, diabetes.target)
diabetesPred = regr.predict(diabetesX)
regr.predict([[0.03807591]]) #对于原始数据的第一个值的预测结果
plt.scatter(diabetesX, diabetes.target) #原始数据的散点图
plt.plot(diabetesX, diabetesPred) #线性回归的折线图
"""###评价指标
- 均方误差(mse)
"""
from sklearn.metrics import mean_squared_error
print('mean squared error is ', mean_squared_error(diabetesY, diabetesPred))
"""#聚类
- k-means
###创建数据集
"""
from sklearn.datasets.samples_generator import make_blobs
clusterX, clusterY = make_blobs(n_samples=1000, n_features=2, centers=[[-1,-1], [0,0], [1,1], [2,2]], cluster_std=[0.4, 0.2, 0.2, 0.2], random_state=0)
plt.scatter(clusterX[:, 0], clusterX[:, 1])
"""###建立模型"""
from sklearn.cluster import KMeans
clu = KMeans(n_clusters=2, random_state=9)
clusterPredict = clu.fit_predict(clusterX)
plt.scatter(clusterX[:, 0], clusterX[:, 1], c=clusterPredict)
plt.show()
"""#模型评估
- cross validation 交叉验证
- 以iris数据集为例
"""
from sklearn.model_selection import train_test_split,cross_val_score
from sklearn.metrics import accuracy_score
from sklearn import svm
import warnings
warnings.filterwarnings('ignore')
clf = svm.SVC()
scores = cross_val_score(clf, irisX, irisY, cv=10, scoring='accuracy')
print('十折交叉验证分别的accuracy ', scores)
print('平均的accuracy ', sum(scores/10))
"""- 通过设置随机种子来进行十次十折交叉验证"""
from sklearn.model_selection import StratifiedKFold,KFold
accEachTime = []
for i in range(0,10):
clf = svm.SVC()
scores = cross_val_score(clf, irisX, irisY, cv=KFold(n_splits=10, random_state=i, shuffle=True), scoring='accuracy')
print(scores)
accEachTime.append(sum(scores/10))
print('每一次的accuracy值 ', accEachTime)
print('十次十折交叉验证的平均accuracy值 ', sum(accEachTime)/10)


机器学习pipeline总结的更多相关文章
- Spark Pipeline官方文档
ML Pipelines(译文) 官方文档链接:https://spark.apache.org/docs/latest/ml-pipeline.html 概述 在这一部分,我们将要介绍ML Pipe ...
- FPGA的过去,现在和未来
我们知道,相对于专业的ASIC,FPGA有上市时间和成本上的优势.另外,在大多数情况下,FPGA执行某些功能较之CPU上的软件操作更高效.这就是为什么我们认为它不但会运用在数据中心的服务器.交换器.存 ...
- 2015 Spark 将走向哪里?
在刚刚过去的spark submit上,Matei Zahara简单回顾了下2014年spark的发展,可用一个词来概括那就是"Amazing"!!! 那么2015年,spark ...
- gen语言
概率编程语言(PPL)领域正经历着机器学习技术快速发展带来的奇迹般的复兴.在短短的几年里,PPL 已经从一个模糊的统计研究领域发展出十几个活跃的开源方案.最近,麻省理工学院(MIT)的研究人员推出了一 ...
- SparkMLLib的简单学习
一. 简介 1. 机器学习中,可以将数据划分为连续数据和离散数据 a. 连续数据:可以取任何值,如房价 b. 离散数据:仅有少量特殊值,如一个房屋有2个或3个房间,但不能为2.75个房间 二. 创建向 ...
- 使用PyTorch进行迁移学习
概述 迁移学习可以改变你建立机器学习和深度学习模型的方式 了解如何使用PyTorch进行迁移学习,以及如何将其与使用预训练的模型联系起来 我们将使用真实世界的数据集,并比较使用卷积神经网络(CNNs) ...
- 使用spark ml pipeline进行机器学习
一.关于spark ml pipeline与机器学习 一个典型的机器学习构建包含若干个过程 1.源数据ETL 2.数据预处理 3.特征选取 4.模型训练与验证 以上四个步骤可以抽象为一个包括多个步骤的 ...
- Spark2.0机器学习系列之2:基于Pipeline、交叉验证、ParamMap的模型选择和超参数调优
Spark中的CrossValidation Spark中采用是k折交叉验证 (k-fold cross validation).举个例子,例如10折交叉验证(10-fold cross valida ...
- spark ml pipeline构建机器学习任务
一.关于spark ml pipeline与机器学习一个典型的机器学习构建包含若干个过程 1.源数据ETL 2.数据预处理 3.特征选取 4.模型训练与验证 以上四个步骤可以抽象为一个包括多个步骤的流 ...
随机推荐
- abp模块化开发之通用树1:基本使用
一.概述 有些功能在单个项目或多个项目被重复使用,比如:附件,同一个系统中的多个模块都可能使用到,不同项目也有需要.再比如:有无限级分类的树形功能,区域.产品分类.数据字典等.最简单粗暴的办法是直接复 ...
- Vue基础系列(五)——Vue中的指令(中)
写在前面的话: 文章是个人学习过程中的总结,为方便以后回头在学习. 文章中会参考官方文档和其他的一些文章,示例均为亲自编写和实践,若有写的不对的地方欢迎大家和我一起交流. VUE基础系列目录 < ...
- oracle创建索引
数据库索引是为了提高查询速度的一种数据结构. 索引的创建语句 索引的创建语句非常简单. CREATE INDEX 索引名 ON 表名(列名); 除了单列索引,还可以创建包含多个列的复合索引. CREA ...
- conda docker镜像
之前的python环境,使用ubuntu安装pip来安装python依赖,但是遇到缺少某些库的版本,比如一个项目需要用到faiss,pip只有最新的1.5.3版本,但是这个版本使用了较新的CPU指令, ...
- C# 派生和继承(派生类与基类)
using System; using System.Collections.Generic; using System.Text; namespace 继承 { class Program { st ...
- C# format格式对齐
1.24小时时间格式制定 按照2019-12-10-13-00-00格式输出:string dtnow = string.Format("{0:yyyy-MM-dd-HH-mm-ss}&qu ...
- JavaScript-----15.简单数据类型和复杂数据类型
1. 简单数据类型和复杂数据类型 简单数据类型又叫做基本数据类型或者值类型,复杂类型又叫做引用类型 值类型:在存储时变量中存储的是值本身:string number Boolean undefined ...
- IM即时通信软件设计
参考资料: 架构篇:https://yq.aliyun.com/articles/698301 模型篇:https://yq.aliyun.com/articles/701593 实现篇:https: ...
- 【每天一题】LeetCode 0028. 字符串匹配
开源地址:https://github.com/jiauzhang/algorithms 题目描述 * https://leetcode-cn.com/problems/implement-strst ...
- C# WinForm界面美化--使用IrisSkin实现换肤功能
WinForm界面使用IrisSkin,可以说做到了一键美化,当然美化的效果仁者见仁智者见智,可以挑选自己喜欢的. 1.IrisSkin下载地址:https://www.cr173.com/soft/ ...