机器学习入门(一)

年后又开始新一轮的学习了。
今天我来复习跟巩固机器学习的基础概念。

1.机器学习系统的类型

我们将机器学习系统按他们的特点分类:

  1. 是否在人类监督下训练。例如:有监督学习,无监督学习,半监督学习,强化学习。
  2. 是否可以动态地进行增量学习。例如:在线学习,批量学习。
  3. 是否简单地将新的数据点和已知的数据点进行匹配,还是像科学家一样,对训练数据进行模式检测然后建立一个预测模型。例如:基于实例的学习和基于模型的学习。

这些标准之间相互并不排斥,你可以按你喜欢的方式将其任意组合。例如,现在最先进的垃圾邮件过滤器可能是使用深度神经网络模型对垃圾邮件和常规邮件进行训练,完成动态学习。这使其成为一个在线的、基于模型的有监督学习系统。接下来我来介绍这些标准。

1.1 有监督学习和无监督学习

根据训练期间接受的监督数量和监督类型,可以将机器学习系统分为以下四个主要类别:有监督学习,无监督学习,半监督学习,强化学习。

1.1.1有监督学习

在有监督学习中,提供算法的包含所需解决方案的训练集称为标签。
概念:通过已有的训练样本去训练得到一个最优模型,再利用这个模型将所有的输入映射为相应的输出,对输出进行简单的判断从而实现预测和分类的目的,也就具有了对未知数据进行预测和分类的能力。简单来说,就像有标准答案的练习题,然后再去考试,相比没有答案的练习题然后去考试准确率更高。监督学习中的数据中是提前做好了分类信息的, 它的训练样本中是同时包含有特征和标签信息的,因此根据这些来得到相应的输出。

补充:最常见的监督学习就是回归和分类。
这里是一些重要的有监督学习算法:

·K-近邻算法
·线性回归
·逻辑回归
·支持向量机(SVM)
·决策树和随机森林
·神经网络
1.1.2无监督学习

顾名思义,无监督学习的训练数据都是未经标记的。系统会在没有“老师”的情况下学习。
概念:训练样本的标记信息未知, 目标是通过对无标记训练样本的学习来揭示数据的内在性质及规律,为进一步的数据分析提供基础,此类学习任务中研究最多、应用最广的是"聚类" (clustering),聚类目的在于把相似的东西聚在一起,主要通过计算样本间和群体间距离得到。深度学习和PCA都属于无监督学习的范畴。
这里有一些重要的无监督学习算法

·聚类算法
·k-均值算法
·DBSCAN
·分层聚类分析(HCA)
·异常检测和新颖性检测
·单类SVM
·孤立森林
·可视化和降维
·主成分分析(PCA)
·核主成分分析
·局部线性嵌入(LLE)
·t-分布随机近邻嵌入(t-SNE)
·关联规则学习
·Apriori
·Eclat
1.1.3半监督学习

概念:由于通常给数据做标记是非常耗时和昂贵的,你往往会有很多未标记的数据而很少有已标记的数据。有些算法可以处理部分已标记的数据。这被称为半监督学习
有些照片托管服务(例如Google相册)就是很好的示例。一旦你将所有的家庭照片上传到服务器后,他会自动识别出人物A出现在照片1、5、11中,人物B出现在照片2、5、7中。这就是算法的无监督学习部分(聚类)。现在系统需要你做的就是只是告诉他这些人都是谁,给每一个人标签后,他就可以给每张照片中的每个人命名,这对于搜索图片非常重要。
大多数半监督学习算法是无监督算法和有监督算法的结合。

1.1.4强化学习

强化学习则是一个非常与众不同的“巨兽”。他的学习系统(在其语境中称为智能体)能够观察环境,做出选择,执行动作,并获取回报(或者是以负面回报的形式获得惩罚)。所以他必须自行学习什么是最好的策略,从而随着时间的推移获得最大的回报。策略代表智能体在特定情况下应该选择的动作。
大呼拉
像这个图,智能体在遇到火焰后,惩罚为减50分,所以他知道了火是不好的,下次绕开走。而遇到水,回报是加50分,所以他知道了水是好的。

2.实例

讲了一些机器学习的基本概念,现在来看一个实例,加深下印象。这个是想要知道塞浦路斯人有多幸福,但是经合组织的数据没有提供答案。幸好你有这个模型可以做出预测:先查查塞浦路斯的人均GDP是多少,发现是22587美元,然后运用到模型中,发现生活满意度大约是4.85+22587*0.0000491 = 5.96.下面这个代码就是解释,如何计算出生活满意度的。

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import sklearn.linear_model

#导入数据
oecd_bli = pd.read_csv("D:/jiqixuexitest/handson-ml2/datasets/lifesat/oecd_bli_2015.csv", thousands = ',',error_bad_lines=False)
gdp_per_capita = pd.read_csv("D:/jiqixuexitest/handson-ml2/datasets/lifesat/gdp_per_capita.csv",thousands = ',',delimiter='\t',encoding='latin1',na_values="n/a",error_bad_lines=False)

#处理数据
country_stats = country_stats_prepare(oecd_bli, gdp_per_capita)
X = np.c_[country_stats["GDP per capita"]]
y = np.c_[country_stats["Life satisfaction"]]

#可视化数据
country_stats.plot(kind='scatter' , x="GDP per capita", y="Life satisfaction")
plt.show()

#选择线性模型
model = sklearn.linear_model.LinearRegression()

#训练模型
model.fit(X,y)

#做出预测
X_new = [[22587]]
print(model.predict(X_new))

在这里插入图片描述
在这里插入图片描述
在本案例中,葡萄牙和西班牙的生活满意度分别为5.1和6.5,预测的塞浦路斯的生活满意度为5.7,取这三个数的平均值为5.77,这野非常接近基于模型预测所得的值,这个简单的算法被称为k-近邻回归(在本例中,k=3)

3.总结

一个经典的机器学习项目分为:

·研究数据
·选择模型
·使用训练数据进行训练(即前面学习算法搜索模型参数值,从而使成本函数最小化的过程)。
·最后,应用模型对新示例进行预测(称为推断),希望模型的泛化结果不错。
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
零基础python机器学习快速入门机器学习是一门涉及数据分析、统计学和计算机科学的学科,使用算法和模型来让计算机自主学习,从而能够对未知数据进行预测和决策。Python是一种广泛应用于机器学习领域的编程语言,由于其易读易写的特性,成为了机器学习初学者的首选。 要快速入门Python机器学习,以下是一些建议: 1. 学习Python编程基础:学习基本语法、控制流、函数、面向对象编程等基础知识,以便能够编写Python程序。 2. 学习Python的科学计算库:掌握NumPy、Pandas和Matplotlib等库,它们提供丰富的数学计算、数据分析和数据可视化功能。 3. 学习机器学习库:掌握Scikit-learn库,它是Python中最流行的机器学习库之一,提供了大量的机器学习算法和工具。 4. 学习机器学习基础概念:了解机器学习的基本概念和常用算法,如监督学习、无监督学习、回归、分类、聚类等。 5. 完成实践项目:通过完成一些简单的机器学习项目,如房价预测、垃圾邮件分类等,将理论知识应用到实际问题中。 6. 参考教程和文档:利用网络上丰富的教程和文档资源,学习更多关于Python机器学习的知识和技巧。 7. 加入社区和论坛:参与机器学习社区和论坛,与其他学习者交流和分享经验,可以加速学习的过程。 通过以上步骤,你将能够快速掌握零基础Python机器学习入门所需的知识和技能,并能够开始构建自己的机器学习项目。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值