python ai 源码_10行Python代码带你开启AI世界大门

   日期:2024-12-26    作者:ks5jw 移动:http://oml01z.riyuangf.com/mobile/quote/23121.html

人工智能AI(Artificial Intelligence)是最近几年来非常热门话题之一。虽然,现阶段的技术和电影里广义的强人工智能AGI(Artificial General Intelligence)还相去甚远,但是,近些年,弱人工智能(Artificial Narrow Intelligence)技术的应用的的确确地改变了我们的日常。我们生活和工作中使用的各种APP里都随处可见AI的影子。随着智能手机等移动电子设备的普及,近十年来人类的各类活动转化成为海量的数据,为人工智能的发展提供了很好的数据基础。

那么,如何能有效地利用这些数据来改善我们的生活哪?机器学习为我们提供了一个的有效途径。机器学习ML(Machine Learning)是指让机器通过训练获得某种能力,在某种程度上使机器具有一定的“智能”,从而实现某些特定的功能。机器学习常用领域包括:回归,分类和聚类三大类。

接下来,我们就通过机器学习里最简单的线性回归来解决一个现实生活中可能遇到的实际问题。假如你有一处位于北京市海淀区五道口附近110平方米的待售房产,发布广告之前你需要确定一个合理的房屋标价。

当然,你完全可以咨询一个有经验的房产中介。然而,学过编程之后我们能否通过网络现有资源自己来解决这个问题那?下面,我们就通过简单的方法抓取58同城的二手房价格数据,再使用Python编程来估计房屋的合理售价,通过python编程方法自己来做一个“有经验”的房产中介。

1. 数据抓取

互联网上经常能看到铺天盖地的爬虫课程广告。其实,很多人混淆了爬虫和数据抓取的概念。想要自己通过python编程实现数据抓取这一过程,推荐出门左转观看李骏老师B站里Web数据抓取教程。

接下来,我们采用一个相对更容易上手的方法,使用后羿采集器抓取网络数据。后羿采集器是由前谷歌搜索技术团队基于人工智能技术研发的新一代网页采集软件。支持三大操作系统。安装方法可以参考咱们的文字版教程。后羿采集器官网下载地址:http://www.houyicaiji.com/

首先打开58同城网站搜索我们所需要的结果。分别在二手房页面里添加搜索关键词“北京”,“朝阳区”,“五道口”,房屋类型咱们选择“普通住宅“,然后点击搜索。

复制浏览器里58同城二手房搜索结果页面的网址,打开后羿采集器,在首页面地址栏里粘贴网址,点击“开始采集”。等待网页信息加载完毕。然后,点击“清空所有”按钮,按需求分别依次点击“添加字段”,添加我们需要的数据。由于前面我们已经限制了一些地点信息,这里我们主要考虑房屋面积对于房屋价格的影响,这里我们添加如图所示名称、面积、价格三个字段。

然后点击开始采集并等待结束。以我当时实际操作时间点为例,本次采集共耗时1分13秒,采集网页信息4页共191条数据。(如果你的搜索结果数据过多,可以中途随时停止。)

接下来,选择合适的路径将采集的数据导出,保存为所需要的格式,也可存储成常用的数据库类型。这里,我们将数据保存为Excel文件。如果你想跳过数据抓取这一步,可以直接在如下地址下载数据文件。本算例使用的58同城数据下载地址:https://github.com/sammy388/AI_Learning_1st_class/blob/master/assets/58data.xlsx

2. 数据清洗

数据清洗的目的直白些说就是为了把我们获得数据中的“脏”数据“洗掉”,以及发现并纠正数据文件中可识别的各种错误。咱们这个例子中,由于前面的数据抓取过程中已经做过了初步的筛选,因此我们拿到的数据相对整洁,不需要进行过多的处理。

下面就开始使用python,首先需要import所用到的库,这里包括numpy,pandas和matplotlib等几个常用库。对于这几个库的入门使用方法可以参考李骏老师B站的教程。

先使用pandas导入xlsx文件,可以看到我们得到的是一组119行4列的数据文件,前两列分别是房屋名称和链接地址,这些信息下面的计算中其实并不需要,保留的目的只是为了方便查看感兴趣的房屋,后面两列是我们下面计算所需要的数据。

这个例子的数据清洗仅仅需要进行下面2个动作。

1,由于下载时无法单独选择,房屋面积一列单位 m2 也被一起抓取下来。针对该列房屋面积数值和单位混合在一起的情况,可以使用apply去除多余的字符。

2,前面两列信息与计算不相关,可以用drop将其去掉。完成以上两步操作后,我们就获得了非常干净的数据。

接下来,我们用matplotlib将清洗后的数据通过二维平面坐标系的散点图形式画出来。图中可以明显地看到房价随着房屋面积的线性上升趋势。

3. 线性回归

线性回归顾名思义就是通过直线去拟合数据。我们知道一条直线的方程是 y = ax + b ,那么只需要确定a和b两个参数的具体数值就可把这条直线画出来。接下来,我们就用通过对已有训练集数据的拟合获得a和b两个参数的值,从而对房屋价格进行估计。

这里,为了不给大家造成过多负担,这里不涉及过多的数学知识,我们直接使用第三方Scikit-learn库完成回归过程。Scikit-learn具有各种常用的分类,回归和聚类算法,使用起来非常方便。

我们要完成的线性回归过程,这里只需要一行代码就可以实现。由于数据不多,立刻就可以得到 a、b的值。把计算结果代入直线方程中和抓取的房价数据一起画出来就得到下面的图,可以看到这条直线很好地表征了房屋面积和房价的关系。

最后再回到我们开始时的那个问题。用训练集的回归结果预测我们前面提到的房屋价格。最后可以得到“根据58同城 191 条二手房屋信息,您北京市海淀区五道口 110 平方米房屋预估价格约为 1159 万元”的结论。

以下是实现上述过程的完整版10行Python代码,需要的小伙伴也可以在文末扩展版教程里直接复制图中代码。

4. 结语

以上,我们就完成了从数据抓取、数据清洗、再到数据分析及最后数据预测的一个完整的机器学习全过程。这个线性回归的例子我们可以把它看作是AI世界里的Hello world,完成这个简单的例子也就相当于你已经开启了AI世界的大门。

此外,如果对这条红色直线到底是怎么画出来过程感兴趣的小伙伴也可以参考下面完整文字教程的后半部分,自己通过python编程实现梯度下降算法,看清红线的不断调整整个过程,并探究学习率对于梯度下降算法的影响,从而了解AI“黑箱子”的内部运作机理。扩展版文字版教程

https://github.com/sammy388/AI_Learning_1st_class/blob/master/AIfirstclass.ipynb

其他更为复杂的机器学习问题也基本都可以遵循相同的思路。现在,在python里我们可以非常方便地通过第三方库实现各种复杂AI的算法,对于像学习人工智能的小伙伴来说可谓非常的方便。感兴趣的小伙伴们可以慢慢探索,用AI的思想解决更多我们生活中的问题。


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号