第一篇博客
为了记录学习的知识并与他人进行交流,本人准备进行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)
- 超参数调整与模型选择
执行使用许多小验证集的交叉验证(时间长) - 数据不匹配