第一篇博客

为了记录学习的知识并与他人进行交流,本人准备进行java、机器学习等知识的学习,一起勉励。

机器学习实战(蜥蜴书第二版)

第一章

1.1什么是机器学习

机器学习是一个领域,让计算机无须进行明确编程就具备学习能力。通过经验E学习T,任务T的性能P随着E的经验增长,则成为机器学习。

1.2机器学习的类型

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

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

  • 半监督学习

  • 强化学习

  • 在线学习

  • 批量学习

1.3机器学习的例子

接下来利用numpy和pandas将数据进行处理,具体来说是将生活满意度数据与人均GDP合并,将人均GDP设置为X,生活满意度设置为Y。在这里数据处理有几个小细节:

  • np.c_的使用,这个与pandas的merge很像,但这个程序中np.c_[country_stats[GPD_per_capita"]],country_stats[GPD_per_capita"]是一个Series,将pandas转为numpy,同时这个.c_是将其变为二维的,[[1000, 9000, 5000,…]]像这样,.r_将其变为一维的,由于创建LinerRegression我们要两维的所有X与Y都要变成二维的。

  • gdp_per_capita.rename(columns={“2015”: “GDP per capita”}, inplace=True)是将2015列名字更换为GDP pre capita.

  • pandas中iloc如果为data.iloc[0],选取第一列。若为data.iloc[[0]],选取第一行。data.iloc[3,5],选取第三行第五列。data.iloc[[3,5]],取3和5行。记住逗号前为行,后面为列,如果没有逗号分隔,就算是列表也是切分行的。

  • pandas若直接索引像data[[‘GDP’, ‘ABC’]],则选取对应列。

之后进行

  • 研究数据
  • 选择模型
  • 使用训练数据进行训练
  • 进行预测

1.4机器学习的挑战

  • 数据量不足
  • 数据不具代表性
  • 过拟合
  • 低质量数据(需要大量清洗)
  • 无关特征
  • 欠拟合数据

1.5测试与验证

训练集与测试集还有验证集(train_dev)

  • 超参数调整与模型选择
    执行使用许多小验证集的交叉验证(时间长)
  • 数据不匹配
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐