Python机器学习应用-北京理工大学-礼欣
MOOC课程地址:http://www.icourse163.org/learn/BIT-1001872001?tid=1001965001
课程资料可在GitHub上下载(包括数据与相关教学资料)
链接:https://github.com/caiiiac/Machine-Learning-with-Python
课程内容
非监督学习:聚类、降维
监督学习:分类、回归
强化学习:使用深度神经网络进行强化学习
sklearn
安装:pandas, numpy, scipy, matplotlib, sklearn
六个模块:分类、回归、聚类、降维、模型选择、数据预处理
使用sklearn进行机器学习的一般步骤
加载数据(数据格式整理,工作量一般较大)
创建模型 a = sklearn.***
训练模型 a.fit(train_data)
预测 a.predict(test_data_X)
检验,模型预测结果与真实结果进行比较
聚类:Kmeans
随机选择K个点作为聚类中心,根据与聚类中心的距离将所有样本点划分到各个簇,重新计算各个簇的中心点作为新的聚类中心,重复第2、3步直到聚类中心不再变化(或者达到一定迭代次数)
sklearn.cluster.KMeans(n_cluster) K
实例:31个省份家庭平均消费水平
聚类:DBSCAN
不需要制定簇的个数。将所有点划分为核心点、边界点与噪声点,删除噪声点,将距离在规定半径范围内的核心点连接,所有连接的核心点形成一个簇,将边界点划分到其所对应核心点所在的簇。
sklearn.cluster.DBSCAN(eps, min_samples,metric) 半径、簇内样本点数、距离计算方法
实例:学生上网时间分布
聚类问题中距离的计算非常关键,常用的距离计算方式有:欧氏距离、马氏距离(协方差)、曼哈顿距离、夹角余弦
降维:PCA(主成分分析)
将相关的高维变量转变为线性无关的低维变量,且将可能保留原始变量的数据
sklearn.decomposition.PCA(n_components,svd_solver)主成分个数、特征值分解方法
实例:鸢尾花数据降维后进行可视化
降维:NMF(非负矩阵分解)
抽取特征矩阵与系数矩阵
sklearn.decomposition.NMF(n_components,init)分解后矩阵的单个维度长,矩阵的初始化方法
实例:人脸数据特征提取
实例:基于聚类的图像分割
分类:KNN(K近邻分类器)
计算待分类点与数据集中所有点的举例,选取举例最近的K个点,将待分类点归于K个近邻点钟出现次数最多的类别中
sklearn.neighbor.KNeighborsClassifier(n_neighbor,weight,algorithm)K,K个点的权重、计算邻近点的方法
分类:决策树(Decision Tree, DT)
顺序询问分类点的属性来决定分类点的类别
sklearn.tree.DecisionTreeClassifer(criterion,max_feature)选择属性的准则、选取多少特征
分类:朴素贝叶斯(Naïve Bayes, NB)
基于特征的条件独立性假设学习输入输出的联合概率分布,给定X,根据贝叶斯公司计算后验概率
sklearn.naive_bayes.GussianNB高斯朴素贝叶斯
sklearn.naive_bayes.MultinomialNB基于多项式模型的朴素贝叶斯
sklearn.naive_bayes.BermoulliNB基于多元伯努利的朴素贝叶斯
实例:人体运动状态预测(KNN, DT, NB)
实例:上证指数涨跌预测(SVM,支持向量机)
回归:线性回归
sklearn.linear_model.LinearRegression()
实例:房屋面积与成交价格
回归:多项式回归
sklearn.preprocessing.PolynomialFeatures()将X转为多项式
sklearn.linear_model.LinearRegression()
实例:房屋面积与成交价格
回归:岭回归
对线性回归中求参数的最小二乘法进行了改进,是专用于共线数据分析的有偏估计回归方法。
实例:交通流量预测
sklearn.linear_model.Ridge()
实例:手写数字识别(多层感知机MLP, KNN)
sklearn.neural_networl_MPLClassifier
深度强化学习:DQN(Deep Q learning)
实例:使用TensorFlow框架玩Flappy Bird