Python与机器学习

 

了解基本的机器学习原理及算法

学习利用机器学习算法解决应用问题的能力

掌握sklearn库中常用机器学习基本调用方法,避免重复造车

1:机器学习简介

机器学习的目标:

机器学习是实人工智能的手段,其主要研究内容是如何利用数据和经验进行学习,改善具体算法的性能。

多领域交叉,涉及概率论,统计学,算法复杂度理论等多门学科。

广泛应用于网络搜索,垃圾邮件过滤,推荐系统,广告投放,信用评价,欺诈检测、股票交易和医疗诊断等应用。

机器学习分类:

机器学习一般分为下面几种类型:

监督学习

无监督学习

强化学习

半监督学习

深度学习

Python scikit-learn :

http://scikit-learn.org/stable

Machine leaning in Python

一组简单有效的工具集

依赖python 的numpy ,scipy和matplotlib库

开源,可复用

Scikit-learn 学用函数:

 

应用(Applications)

算法(Algorithm)

分类(Classification)

异常检测,图像识别,等

KNN,SVM,etc

聚类(clustering)

图像分割,群体划分,等

K-Means,谱聚类,etc

回归(Regression)

价格预测,趋势预测,等

线性回归,svr,etc

降维(Dimension reduction)

可视化

PCA,NMF,etc

 

《机器学习》 -周志化

《Pattern recognition and machine learning》 模式识别与机器学习

 

2:SKlearn库:

sklearn是scikit-learn的简称,是一个基于Python的第三方模块。sklearn库集成了一些常用的机器学习方法,在进行机器学习任务时,并不需要实现算法,只需要简单的调用sklearn库中提供的模块就能完成大多数的机器学习任务。
sklearn库是在Numpy、 Scipy和matplotlib的基础上开发而成的,因此在介绍sklearn的安装前,需要先安装这些依赖库。

3:Numpy
Numpy(Numerical Python的缩写)是一个开源的Python科学计算库。在Python中虽然提供了list容器和array模块,但这些结构并不适合于进行数值计算,因此需要借助于Numpy库创建常用的数据结构(如:多维数组,矩阵等)以及进行常用的科学计算(如:矩阵运算)。
Scipy库是sklearn库的基础,它是基于Numpy的一个集成了多种数学算法和函数的Python模块。它的不同子模块有不同的应用,如:积分、插值、优化和信号处理等。
matplotlib是基于Numpy的一套Python工具包,它提供了大量的数据绘图工具,主要用于绘制一些统计图形,将大量的数据转换成更加容易被接受的图表。(注意要先安装numpy再安装matplotlib库)

安装相应的包:

pip install scikit_learn

 

sklearn库中的标准数据集:

数据集总览:

数据集总览:

 

数据集名称

调用方式

适用算法

数据规模

波士顿房价数据集

load_boston

回归

506*13

鸢尾花数据集

Load_iris

分类

150*4

糖尿病数据集

Load_diabetes

回归

442*10

手写数字数据集

Load_digits

分类

5620*64

Olivetti 脸部图像数据集

Fetch_olivetti_faces

降维

400*64*64

新闻分类数据集

Fetch_20newsgroups

分类

-

带标签的人脸数据集

Fetch_lfw_people

分类,降维

-

路透社新闻语料数据集

Fetch_rcv1

分类

804414*47236

波士顿房价数据集 :

波士顿房价数据集包含506组数据,每条数据包含房屋以及房屋周围的详细信息。其中包括城镇犯罪率、一氧化氮浓度、住宅平均房间数、到中心区域的加权距离以及自住房平均房价等。因此,波士顿房价数据集能够应用到回归问题上。

Sklearn库的基本功能:

Sklearn 库的共分为6个部分:分别用于完成分类任务,回归任务,聚类任务,降维任务,模型选择及数据的预处理

分类任务:

分类模型

加载模型

最近邻算法

neighbors.NearestNeighbors

支持向量机

svm.SVC

朴素贝叶斯

naive_bayes.GaussianNB

决策树

tree.DecisionTreeClassifier

集成方法

ensemble.BaggingClassifier

神经网络

neural_network.MLPClassifier

回归任务:

回归模型

加载模块

岭回归

linear_model.Ridge

Lasso回归

linear_model.Lasso

弹性网络

linear_model.ElasticNet

最小角回归

linear_model.Lars

贝叶斯回归

linear_model.BayesianRidge

逻辑回归

linear_model.LogisticRegression

多项式回归

preprocessing. PolynomialFeatures

聚类任务

 

聚类方法

加载模块

K-means

cluster.KMeans

AP聚类

cluster.AffinityPropagation

均值漂移

cluster.MeanShift

层次聚类

cluster.AgglomerativeClustering

DBSCAN

cluster.DBSCAN

BIRCH

cluster.Birch

谱聚类

cluster.SpectralClustering

 

降维任务

 

降维方法

加载模块

主成分分析

decomposition.PCA

截断SVD和LSA

decomposition.TruncatedSVD

字典学习

decomposition.SparseCoder

因子分析

decomposition.FactorAnalysis

独立成分分析

decomposition.FastICA

非负矩阵分解

decomposition.NMF

LDA

decomposition.LatentDirichletAllocation

 

无监督学习简介:

利用无标签的数据学习数据的分布或数据与数据之间的关系被称为无监督学习。

有监督学习和无监督学习的最大区别在于数据是否有标签

无监督学习最常用的场景是聚类(clustering)和降维(dimension redction)

 

聚类(clustering)

聚类,就是根据数据相似性,将数据分为多类的过程

评估两个不同样本之间的相似性,通常使用的方法就是计算两个样本之间的距离。使用不同的方法计算样本间的距离会关系到聚类结果的好坏。

欧氏距离:

欧氏距离是最常用的一种距离度量方法,源于欧氏空间中两点的距离。其计算方法如下:

D

图.二维空间欧氏距离的计算

 

 

曼哈顿距离:

曼哈顿距离:

曼哈顿距离也称作“城市街区距离”,类似于在城市之中驾车行驶,从一个十字路口到另外一个十字楼口的距离,其计算方法如下:

D=

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值