一、【python】机器学习基础
专有名词
- 机器学习 (machine learning)
- 预测分析 (predictive analytics)
- 统计学习 (statistical learning)
- 监督学习 (supervised learning)
- 无监督学习 (unsupervised learning)
- 样本 (sample)
- 特征 (feature)
- 特征提取 (feature extraction)
- 分类 (classification)
- 类别 (class)
- 标签 (label)
import numpy as np
import matplotlib as plt
import pandas as pd
import scipy as sp
import sklearn
# 以上为我们需要的类
1、鸢尾花分类
关键词
- 分类(classification)
- 散点图(Scatter Plot)
- 散点图矩阵(Pair Plot)
- 训练数据(training data)
- 训练集(training set)
- 留出集(hold-out set)
鸢尾花分类,是机器学习的一个入门和经典的知识点。我们往往可以通过这个小例子入手,来了解一下什么是机器学习。
python的scikit-learn模块已经将鸢尾花的数据进行内置,所以只需要调用函数进行读取和训练即可,无需准备数据。
# 输出iris——dataset中的键,了解一下存储了那些内容
from sklearn.datasets import load_iris
iris_dataset = load_iris()
print("keys of iris_dataset:{}\n".format(iris_dataset.keys()))
keys of iris_dataset:dict_keys(['data', 'target', 'target_names', 'DESCR', 'feature_names', 'filename'])
load_iris返回的iris对象是一个Bunch对象,与字典很相似,里面包含了键和值
# 输出描述信息的部分内容
print(iris_dataset['DESCR'][:200]+'\n')
.. _iris_dataset:
Iris plants dataset
--------------------
**Data Set Characteristics:**
:Number of Instances: 150 (50 in each of three classes)
:Number of Attributes: 4 numeric, predictive
上面的DESCR键对应的值为数据集的简要说明。
target_name键对应的值是一个字符串数组,里面包含我们要预测的花的种类
print("Target_name:{}".format(iris_dataset['target_names']))
Target_name:['setosa' 'versicolor' 'virginica']
feature_names键对应的值是一个字符串列表,对每一个特征进行了说明
print("Feature name:{}".format(iris_dataset['feature_names']))
Feature name:['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']
通常为了可以达到训练和测试的目的,将收集好的带标签数据分为两部分,一部分数据用于构建机器学习模型,叫做训练数据(training data)或训练集(training set)其余的数据用来评估模型的性能,叫做测试数据(test data)测试集(test set)或留出集(hold-out set)。
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_iris
iris_dataset = load_iris()
X_train,X_target,y_train,y_target = train_test_split(iris_dataset['data'],iris_dataset['target'],random_state=0)
print("X_train:{}\n X_tar:{}\n y_tar:{}\n y_tra:{}\n".format(X_train,X_target,y_target,y_train))
为了实现训练和测试的目的,scikit-learn内置了train_test_split函数,帮助我们对训练、测试数据,和训练、测试的标签默认按3:1的比例进行拆分。从而返回数据给定的参数。也可以使用随机种子的形式进行随机按比例分布。
# 利用X_train中的数据创建DataFrame
# 利用iris_dataset.feature_names中的字符串对数据阵列进行标记
iris_dataframe = pd.DataFrame(X_train, columns=iris_dataset.feature_names)
# 利用DataFrame创建散点图矩阵,按y_train着色
grr = pd.scatter_matrix(iris_dataframe, c=y_train, figsize=(15, 15), maker='0',hist_kwds={'bins':20}, s=60,alpha=.8)
scikit-learn中所有的机器学习模型都在各自的类中实现,这些类被称之为Estimator类。k近邻分类算法是在neighbor模块的KNeightborsClassifier类中实现。
from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier(n_neighbors=1)
knn.fit(X_train,y_train)
KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',metric_params=None, n_jobs=None, n_neighbors=1, p=2,weights='uniform')
X_new = np.array([[5,2.9,1,0.2]])
prediction = knn.predict(X_new)
print("Result of Prediction:{}".format(prediction))
print("{}".format(iris_dataset['target_names'][prediction]))
Result of Prediction:[0]
['setosa']
流程总结:
- 准备数据
- 分为训练数据和测试数据
- 观察数据
- 构建模型
- 做出预测
- 评估精度
# 代码总结
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_iris
from sklearn.neighbors import KNeighborsClassifier
iris_dataset = load_iris()
X_train,X_target,y_train,y_target = train_test_split(iris_dataset['data'],iris_dataset['target'],random_state=0)
knn = KNeighborsClassifier(n_neighbors=1)
knn.fit(X_train,y_train)
print("Test set score:{:.2f}".format(knn.score(X_target,y_target)))
Test set score:0.97
一、【python】机器学习基础的更多相关文章
- Python机器学习基础教程-第2章-监督学习之决策树集成
前言 本系列教程基本就是摘抄<Python机器学习基础教程>中的例子内容. 为了便于跟踪和学习,本系列教程在Github上提供了jupyter notebook 版本: Github仓库: ...
- Python机器学习基础教程-第2章-监督学习之决策树
前言 本系列教程基本就是摘抄<Python机器学习基础教程>中的例子内容. 为了便于跟踪和学习,本系列教程在Github上提供了jupyter notebook 版本: Github仓库: ...
- Python机器学习基础教程-第2章-监督学习之线性模型
前言 本系列教程基本就是摘抄<Python机器学习基础教程>中的例子内容. 为了便于跟踪和学习,本系列教程在Github上提供了jupyter notebook 版本: Github仓库: ...
- Python机器学习基础教程-第2章-监督学习之K近邻
前言 本系列教程基本就是摘抄<Python机器学习基础教程>中的例子内容. 为了便于跟踪和学习,本系列教程在Github上提供了jupyter notebook 版本: Github仓库: ...
- Python机器学习基础教程
介绍 本系列教程基本就是搬运<Python机器学习基础教程>里面的实例. Github仓库 使用 jupyternote book 是一个很好的快速构建代码的选择,本系列教程都能在我的Gi ...
- Python机器学习基础教程-第1章-鸢尾花的例子KNN
前言 本系列教程基本就是摘抄<Python机器学习基础教程>中的例子内容. 为了便于跟踪和学习,本系列教程在Github上提供了jupyter notebook 版本: Github仓库: ...
- python 机器学习基础教程——第一章,引言
https://www.cnblogs.com/HolyShine/p/10819831.html # from sklearn.datasets import load_iris import nu ...
- 画出决策边界线--plot_2d_separator.py源代码【来自python机器学习基础教程】
import numpy as np import matplotlib.pyplot as plt from .plot_helpers import cm2, cm3, discrete_scat ...
- python机器学习经典实例PDF高清完整版免费下载|百度云盘|Python基础教程免费电子书
点击获取提取码:caji 在如今这个处处以数据驱动的世界中,机器学习正变得越来越大众化.它已经被广泛地应用于不同领域,如搜索引擎.机器人.无人驾驶汽车等.Python机器学习经典实例首先通过实用的案例 ...
- Python机器学习及实践_从零开始通往KAGGLE竞赛之路PDF高清完整版免费下载|百度云盘|Python基础教程免费电子书
点击获取提取码:i5nw Python机器学习及实践面向所有对机器学习与数据挖掘的实践及竞赛感兴趣的读者,从零开始,以Python编程语言为基础,在不涉及大量数学模型与复杂编程知识的前提下,逐步带领读 ...
随机推荐
- 从入门到精通(分布式文件系统架构)-FastDFS,FastDFS-Nginx整合,合并存储,存储缩略图,图片压缩,Java客户端
导读 互联网环境中的文件如何存储? 不能存本地应用服务器 NFS(采用mount挂载) HDFS(适合大文件) FastDFS(强力推荐
- 迁移WPF项目到.NET CORE
综述 .NET CORE 3.0开始,桌面端支持WPF了.很多.NET FRAMEWORK的项目已经跑了一阵子了,不是很有必要支持.NET CORE,不过最近用一个程序,为了贯彻一些C# 8的特性,需 ...
- 学习vue第六节,v-if和v-show
vue 中的v-if和v-show <!DOCTYPE html> <html> <head> <meta charset="utf-8" ...
- 阿里云函数计算上部署.NET Core 3.1
使用阿里云ECS或者其他常见的VPS服务部署应用的时候,需要手动配置环境,并且监测ECS的行为,做补丁之类的,搞得有点复杂.好在很多云厂商(阿里云.Azure等)提供了Serverless服务,借助于 ...
- E. Count The Blocks
E. Count The Blocks 这是一个计数题,又把我卡自闭了...之前也碰到过类似的题目,这次居然还没有写出来,感觉自己还是太菜了,加油补题吧. 题目大意: 给你一个数字 \(n\),代表的 ...
- P1640 连续攻击游戏
题目传送门 Ⅰ.二分图匹配 其实这题应该不难看出是二分图匹配(尽管我没看出来) 每个物品只能用一次,实际上就是1~n的数字对物品的最大匹配 把物品的两个属性向物品编号连边,之后就从数字1一直匹配过去 ...
- 记一次sqoop安装后测试的问题
运行命令: sqoop import --connect "jdbc:mysql://x.x.x.x:3306/intelligent_qa_bms?useUnicode=true& ...
- 模板引擎 Thymeleaf 动态渲染 HTML
1.添加依赖 <!-- Thymeleaf 模板引擎 --> <dependency> <groupId>org.thymeleaf</groupId> ...
- C# 数据操作系列 - 3. ADO.NET 离线查询
0. 前言 在上一篇中,我故意留下了查询的示范没讲.虽然说可以通过以下代码获取一个DataReader: IDataReader reader = command.ExecuteReader(); 然 ...
- (1)从通信中的MCS含义开始讲起
通信中的MCS:Modulation and Coding Scheme,意思为调制编码方案/调制编码策略,其内涵可分为两个部分:Modulation 和 Coding. 在基带的信号处理流程中, ...