1、图灵测试(1950)“人工智能之父”艾伦.图灵马文马文李李闵斯基闵斯基(英语:Marvin Lee Minsky,1927年8月9日2016年1月24日),科学家,专长于认知科学与人工智能领域,麻省理工学院人工智能实验室的创始人之一,著有几部人工智能和哲学方面的作品。1969年,因为在人工智能领域的贡献,获得图灵奖。人工智能机器学习深度学习新闻一“小”一“同”南方都市报的“小南”,广州日报的“阿同”机器人图片艺术化 GAN神经网络:iphoneX课程定位以及学习目标以算法、案例为驱动的学习,浅显易懂的数学知识掌握算法基本的原理,能够结合场景解决实际问题参考书比较晦涩难懂,不建议去直接读,需要一
2、些基本的数学素养企业现状分析课程第一天1、机器学习概述2、数据来源与类型3、数据的特征工程4、机器学习基础机器学习概述1、什么是机器学习2、为什么需要机器学习3、机器学习的应用场景什么是机器学习机器机器学习是从学习是从数据数据中自动分析获得中自动分析获得规律(模型)规律(模型),并利用规律对并利用规律对未知数据进行未知数据进行预测预测结果搜狗广告推荐为什么需要机器学习解放生产力解决专业问题提供社会便利智能客服不知疲倦进行24小时作业城市大脑杭州ET医疗帮助看病机器学习应用场景自然语言处理计算机视觉无人驾驶推荐系统数据来源与类型1、数据来源2、数据类型3、可用的数据集数据来源 企业日益积累的大量
3、数据(互联网公司更为显著)政府掌握的各种数据 科研机构的实验数据 .我们来看看下面两组数据,说说它们的区别?特定范围内的汽车数量、人口数量、班级数特定范围内的票房数、长度、重量数据类型离散型数据:由记录不同类别个体的数目所得到的数据,又称计数数据,所有这些数据全部都是整数,而且不能再细分,也不能进一步提高他们的精确度。连续型数据:变量可以在某个范围内取任一数,即变量的取值可以是连续的,如,长度、时间、质量值等,这类整数通常是非整数,含有小数部分。注:只要记住一点,离散型是区间内不可分,连续型是区间内可分数据的类型将是机器学习模型不同问题不同处理的依据?将在后面机器学习模型选择时讲解!数据类型的
4、不同应用可用数据集KaggleUCIscikit-learnKaggle特点:1、大数据竞赛平台 2、80万科学家 3、真实数据 4、数据量巨大UCI特点:1、收录了360个数据集 2、覆盖科学、生活、经济等领域 3、数据量几十万scikit-learn特点:1、数据量较小 2、方便学习常用数据集数据的结构组成结构:特征值+目标值8093080100951120801030100目标值房子面积 房子位置 房子楼层 房子朝向数据1数据2数据3注:有些数据集可以没有目标值如何利用工具自己进行对原始数据(非连续型)的处理?数据的特征工程1、特征工程是什么2、特征工程的意义3、scikit-learn
5、库介绍4、数据的特征抽取5、数据的特征处理6、数据的特征选择7、降维特征工程是将原始数据转换为更好地代表预测模型的潜在问题的特征的过程,从而提高了对未知数据的模型准确性特征工程是什么特征工程的意义直接影响模型的预测结果Scikit-learn库介绍 Python语言的机器学习工具 Scikit-learn包括许多知名的机器学习算法的实现Scikit-learn文档完善,容易上手,丰富的API,使其在学术界颇受欢迎。目前稳定版本0.18安装 创建一个基于Python3的虚拟环境(可以在你自己已有的虚拟环境中):mkvirtualenv p /usr/bin/python3.5 ml3 在ubun
6、tu的虚拟环境当中运行以下命令pip3 install Scikit-learn 然后通过导入命令查看是否可以使用:import sklearn注:安装scikit-learn需要Numpy,pandas等库数据的特征抽取1、特征抽取实例演示2、sklearn特征抽取API3、字典特征抽取4、文本特征抽取通过演示得出结论:特征抽取针对非连续型数据 特征抽取对文本等进行特征值化注:特征值化是为了计算机更好的去理解数据sklearn特征抽取API sklearn.feature_extraction字典特征抽取作用:对字典数据进行特征值化类:sklearn.feature_extraction.D
7、ictVectorizerDictVectorizer语法 DictVectorizer(sparse=True,)DictVectorizer.fit_transform(X)X:字典或者包含字典的迭代器 返回值:返回sparse矩阵 DictVectorizer.inverse_transform(X)X:array数组或者sparse矩阵 返回值:转换之前数据格式DictVectorizer.get_feature_names()返回类别名称DictVectorizer.transform(X)按照原先的标准转换1.实例化类DictVectorizer2.调用fit_transform方
8、法输入数据并转换 注意返回格式注意返回格式city:北京,temperature:100city:上海,temperature:60city:深圳,temperature:30流程one-hot编码分析文本特征抽取作用:对文本数据进行特征值化类:sklearn.feature_extraction.text.CountVectorizerCountVectorizer语法 CountVectorizer(max_df=1.0,min_df=1,)返回词频矩阵 CountVectorizer.fit_transform(X,y)X:文本或者包含文本字符串的可迭代对象 返回值:返回sparse矩阵
9、 CountVectorizer.inverse_transform(X)X:array数组或者sparse矩阵返回值:转换之前数据格式CountVectorizer.get_feature_names()返回值:单词列表1.实例化类CountVectorizer2.调用fit_transform方法输入数据并转换 1.注意返回格式,利用注意返回格式,利用toarray()进行进行sparse矩阵转换矩阵转换array数组数组life is short,i like python,life is too long,i dislike python流程结果对比结果对比英文结果中文结果如何去对中文
10、文本特征值化需要对中文进行分词才能详细的进行特征值化不支持单个中文字!jieba分词pip3 install jieba下载import jiebajieba.cut(“我是一个好程序员”)使用返回值:词语生成器注意案例:对三段话进行特征值化1、今天很残酷,明天更残酷,后天很美好,但绝对大部分是死在明天晚上,所以每个人不要放弃今天。2、我们看到的从很远星系来的光是在几百万年之前发出的,这样当我们看到宇宙时,我们是在看它的过去。3、如果只用一种方式了解某样事物,你就不会真正了解它。了解事物真正含义的秘密取决于如何将其与我们所了解的事物相联系。案例:对三段话进行特征值化流程1.准备句子,利用jie
11、ba.cut进行分词2.实例化CountVectorizer3.将分词结果变成字符串当作fit_transform的输入值“共享”其它词语词语占比“车”文章类型?“经济”“证券”“银行”其它词语类:sklearn.feature_extraction.text.TfidfVectorizerTF-IDFTF-IDF的主要思想是:如果某个词或短语在一篇文章中出现的概率高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。TF-IDF作用:用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。TfidfVectorizer语法 TfidfVectori
12、zer(stop_words=None,)返回词的权重矩阵 TfidfVectorizer.fit_transform(X,y)X:文本或者包含文本字符串的可迭代对象 返回值:返回sparse矩阵 TfidfVectorizer.inverse_transform(X)X:array数组或者sparse矩阵返回值:转换之前数据格式TfidfVectorizer.get_feature_names()返回值:单词列表为什么需要TfidfVectorizer分类机器学习算法的的重要依据数据的特征处理1、特征处理的方法2、sklearn特征处理API特征处理是什么通过特定的统计方法(数学方法)将数据
13、转换成算法要求的数据9021040604154575313461.0.0.0.0.1.1.0.830.50.50.61.284563085491第一组第一组第二组第二组特征1特征2特征3 特征4特征1特征2特征3 特征4特征1特征2特征3 特征4特征1特征2特征3数值型数据:标准缩放:1、归一化 2、标准化 3、缺失值类别型数据:one-hot编码时间类型:时间的切分sklearn特征处理API sklearn.preprocessing 归一化特点:通过对原始数据进行变换把数据映射到(默认为0,1)之间公式:注:作用于每一列,max为一列的最大值,min为一列的最小值,那么X为最终结果,mx
14、,mi分别为指定区间值默认mx为1,mi为0归一化公式计算过程902104060415457531346特征1特征2特征3 特征4特征1特征2特征3特征4注:里面是第一步,还需要第二步乘以(1-0)+0sklearn归一化API:sklearn.preprocessing.MinMaxScalersklearn归一化APIMinMaxScaler语法 MinMaxScalar(feature_range=(0,1)每个特征缩放到给定范围(默认0,1)MinMaxScalar.fit_transform(X)X:numpy array格式的数据n_samples,n_features 返回值:转
15、换后的形状相同的array1、实例化MinMaxScalar2、通过fit_transform转换归一化步骤90,2,10,40,60,4,15,45,75,3,13,46归一化案例:约会对象数据相亲约会对象数据,这个样本时男士的数据,三个特征,玩游戏所消耗时间的百分比、每年获得的飞行常客里程数、每周消费的冰淇淋公升数。然后有一个 所属类别,被女士评价的三个类别,不喜欢didnt、魅力一般small、极具魅力large也许也就是说飞行里程数对于结算结果或者说相亲结果影响较大,但是统计的但是统计的人觉得这三个特征同等重要。人觉得这三个特征同等重要。14488 7.153469 1.673904
16、smallDoses26052 1.441871 0.805124 didntLike75136 13.147394 0.428964 didntLike38344 1.669788 0.134296 didntLike72993 10.141740 1.032955 didntLike35948 6.830792 1.213192 largeDoses42666 13.276369 0.543880 largeDoses67497 8.631577 0.749278 didntLike35483 12.273169 1.508053 largeDoses50242 3.723498 0.83
17、1917 didntLike里程数公升数消耗时间比评价问题:如果数据中异常点较多,会有什么影响?注意在特定场景下最大值最小值是变化的,另外,最大值与最小值非常容易受异常点影响,所以这种方法鲁棒性较差,只适合传统精确小数据场景。归一化总结标准化1、特点:通过对原始数据进行变换把数据变换到均值为0,方差为1范围内2、公式:012345622.5012345 3平均值为(1.5+2+2.5+5)/4=2.75平均值为(2.5+4.5+2+3)/4=31.552.54.52对于归一化来说:如果出现异常点,影响了最大值和最小值,那么结果显然会发生改变对于标准化来说:如果出现异常点,由于具有一定数据量,少
18、量的异常点对于平均值的影响并不大,从而方差改变较小。结合归一化来谈标准化sklearn特征化API:scikit-learn.preprocessing.StandardScalersklearn特征化APIStandardScaler语法 StandardScaler()处理之后每列来说所有数据都聚集在均值0附近方差为1 StandardScaler.fit_transform(X,y)X:numpy array格式的数据n_samples,n_features 返回值:转换后的形状相同的arrayStandardScaler.mean_原始数据中每列特征的平均值StandardScaler
19、.std_原始数据每列特征的方差 1.,-1.,3.,2.,4.,2.,4.,6.,-1.标准化步骤1、实例化StandardScaler2、通过fit_transform转换在已有样本足够多的情况下比较稳定,适合现代嘈杂大数据场景。标准化总结如何处理数据中的缺失值?缺失值缺失值处理方法删除如果每列或者行数据缺失值达到一定的比例,建议放弃整行或者整列插补可以通过缺失值每行或者每列的平均值、中位数来填充1、2、sklearn缺失值API:sklearn.preprocessing.ImputerImputer语法 Imputer(missing_values=NaN,strategy=mean,
20、axis=0)完成缺失值插补 Imputer.fit_transform(X,y)X:numpy array格式的数据n_samples,n_features 返回值:转换后的形状相同的array1,2,np.nan,3,7,6Imputer流程1、初始化Imputer,指定”缺失值”,指定填补策略,指定行或列2、调用fit_transform注:缺失值也可以是别的指定要替换的值关于np.nan(np.NaN)1、numpy的数组中可以使用np.nan/np.NaN来代替缺失值,属于float类型2、如果是文件中的一些缺失值,可以替换成nan,通过np.array转化成float 型的数组即可
21、特征选择1、特征选择是什么2、sklearn特征选择API3、其它特征选择方法特征选择原因 冗余:部分特征的相关度高,容易消耗计算性能 噪声:部分特征对预测结果有负影响特征?1、羽毛颜色2、眼睛宽度3、是否有爪子4、爪子长度特征选择就是单纯地从提取到的所有特征中选择部分特征作为训练集特征,特征在选择前和选择后可以改变值、也不改变值,但是选择后的特征维数肯定比选择前小,毕竟我们只选择了其中的一部分特征。特征选择是什么主要方法(三大武器):Filter(过滤式过滤式):VarianceThreshold Embedded(嵌入式嵌入式):正则化、决策树:正则化、决策树 Wrapper(包裹式包裹式
22、)sklearn特征选择APIsklearn.feature_selection.VarianceThresholdVarianceThreshold语法 VarianceThreshold(threshold=0.0)删除所有低方差特征 Variance.fit_transform(X,y)X:numpy array格式的数据n_samples,n_features 返回值:训练集差异低于threshold的特征将被删除。默认值是保留所有非零方差特征,即删除所有样本 中具有相同值的特征。0,2,0,3,0,1,4,3,0,1,1,3VarianceThreshold流程(代码演示)1、初始化
23、VarianceThreshold,指定阀值方差2、调用fit_transform其他特征选择方法神经网络后面具体介绍sklearn降维API sklearn.decomposition 如何最好的对一个立体的物体二维表示PCA(主成分分析)PCA是什么本质:PCA是一种分析、简化数据集的技术目的:是数据维数压缩,尽可能降低原数据的维数(复杂度),损失少量信息。作用:可以削减回归分析或者聚类分析中特征的数量高维度数据容易出现的问题 特征之间通常是线性相关的数据:(-1,-2)(-1,0)(0,0)(2,1)(0,1)要求:将这个二维的数据简化成一维?通过公式计算(只做了解)矩阵运算得出P为PC
24、A语法 PCA(n_components=None)将数据分解为较低维数空间 PCA.fit_transform(X)X:numpy array格式的数据n_samples,n_features 返回值:转换后指定维度的array2,8,4,5,6,3,0,8,5,4,9,1PCA流程(代码演示)1、初始化PCA,指定减少后的维度2、调用fit_transform探究:用户对物品类别的喜好细分降维数据:products.csv 商品信息order_products_prior.csv 订单与商品信息orders.csv 用户的订单信息 aisles.csv 商品所属具体物品类别其它降维方法 线
25、性判别分析LDA特征选择与降维的比较?机器学习基础1、机器学习开发流程2、机器学习模型是什么3、机器学习算法分类(1)算法是核心,数据和计算是基础需明确几点问题:(2)找准定位大部分复杂模型的算法设计都是算法工程师在做,而我们分析很多的数据分析具体的业务应用常见的算法特征工程、调参数、优化我们应该怎么做我们应该怎么做1.学会分析问题,使用机器学习算法的目的,想要算法完成何种任务2.掌握算法基本思想,学会对问题用相应的算法解决3.学会利用库或者框架解决问题机器学习开发流程机器学习模型是什么定义:通过一种映射关系将输入值到输出值模型学习特征值、目标值被预测特征值预测输出值猫、狗?科技、体育?月票房
26、下月票房数据?结合前面讲过的数据类型,针对刚才三个例子的输出结果你能说出区别吗?机器学习算法分类 监督学习 分类 k-近邻算法、贝叶斯分类、决策树与随机森林、逻辑回归、神经网络 回归 线性回归、岭回归 标注 隐马尔可夫模型 (不做要求)无监督学习 聚类 k-means监督学习输入数据有特征有标签,即有标准答案分类、回归无监督学习输入数据有特征无标签,即无标准答案聚类监督学习监督学习监督学习(英语:Supervised learning),可以由输入数据中学到或建立一个模型,并依此模式推测新的结果。输入数据是由输入特征值和目标值所组成。函数的输出可以是一个连续的值(称为回归),或是输出是有限个离
27、散值(称作分类)。无监督学习无监督学习无监督学习(英语:Supervised learning),可以由输入数据中学到或建立一个模型,并依此模式推测新的结果。输入数据是由输入特征值所组成。分类问题概念:分类是监督学习的一个核心问题,在监督学习中,当输出变量取有限个离散值时,预测问题变成为分类问题。最基础的便是二分类问题,即判断是非,从两个类别中选择一个作为预测结果;分类问题的应用分类在于根据其特性将数据“分门别类”,所以在许多领域都有广泛的应用在银行业务中,构建一个客户分类模型,按客户按照贷款风险的大小进行分类图像处理中,分类可以用来检测图像中是否有人脸出现,动物类别等手写识别中,分类可以用于识别手写的数字文本分类,这里的文本可以是新闻报道、网页、电子邮件、学术论文回归问题概念:概念:回归是监督学习的另一个重要问题。回归用于预测输入变量和输出变量之间的关系,输出是连续型的值。回归问题的应用回归在多领域也有广泛的应用房价预测,根据某地历史房价数据,进行一个预测金融信息,每日股票走向说一下它们具体问题类别:1、预测明天的气温是多少度?2、预测明天是阴、晴还是雨?3、人脸年龄预测?4、人脸识别?