新手上路,自然是横冲直撞。虽然英语不咋样,还是选择在Kaggle上面跟随学习。在对Python有一些基础的了解后,便开始直接从比赛中磨练自己。点开Kaggle里learn提供的一些教程,跟随教程迈出第一步。
- 首先要具备的一些知识:
除了Python的一些基础知识(至少也得能看懂代码),还需要Python里一些不错的包,在数据处理时用的最多的就是 numpy、pandas。(目前了解尚浅,只好先艾特大佬的博客了)
墨尔本房价预测
教程中提供了一个关于墨尔本房价预测的事例来辅助学习。
假设你家里要买房,目前某地正在建一些房子,手头也就那么多钞票,总要对房价有一个大概的估计。
而你手头只有一些这座城市里往年的一些房子信息(比如路段、房间数、房子大小、几个卧室、几个厕所…)这样子问题就来了,究竟该如何根据这些已知的数据进行有效的预测呢?这当然不能用简简单单的“我估摸着”这种话来敷衍,于是会了几行代码的你就找到了机器学习作为工具。
开始高大上的工作之前,我们得汇总这些信息,将它们汇集成一个表格,输出为csv文件。
- csv文件的读取
这里我们就需要用到pandas里的read_csv
方法了
import pandas as pd
data = './melb_data.csv'
home_data = pd.read_csv(data)
home_data.columns#显示所有的列
这里我的引入方法是由于放在当前工作目录下,所以直接使用相对地址,一般来说导入应用../input/
- 数据可视化分析(仅pandas下)
这里常用的是pandas下的pd.head()
和pd.describe()
方法
pd.head()
默认显示数据的前五行,当然在括号里输入其他数字就可以显示头几行了。与之对应,有pd.tail()
显示数据尾部几行,默认五行
而pd.describe()
则是显示数据和、平均值、标准差、最小值、25%、50%、75%、最大值的统计数据,是数据分析和缺失值处理时不错的工具
Y = home_data.Price
Use_columns = ['Rooms','Bedroom2','Bathroom','Landsize']
#采用这几列作为数据分析需要的列
X = home_data[Use_columns]#将需要的数据列名为X
X.describe()#统计选取列的信息
X.head()
刚刚入门,先不弄数据挖掘和缺失值处理的东西。
上面代码中我们已经定义了X和Y,就像函数里一样,X是输入,Y是输出,也就是我们现在需要的的预测值。
- 模型的引入与训练(决策树)
在这里我们采用比较入门的决策树模型,这些机器学习模型都需要从一个库sklearn
里引入。(这里给出官网)
from sklearn.tree import DecisionTreeRegressor
model_1 = DecisionTreeRegressor(random_state = 1)
model_1.fit(X,Y)#训练模型
经过这一步的训练,我们建立的模型已经有它基本的智能了,接下来就可以进行结果的预测了。
predictions = model_1.predict(X.head())
print(predictions)
为了看看我们花了这么久搞定的第一个模型到底几斤几两,我们把正确的值输出对比一下
#输出正确的数据对比一下
print(Y.head())
然而,现实总是这样,当你希望的小火苗刚刚升腾,他就突然一盆凉水…
为什么会偏差这么大呢?显然,回想一下我们做了些什么,首先X就只选了部分数据,然后呢,铁着头就把数据往树里扔,没有做任何处理。那人家模型当然也不干了,好啊,扔一堆废品进来,那我也吐一堆废品出去好了。这就涉及到数据分析和处理的知识了,这也是机器学习问题里比较核心的问题,如何输入优秀的数据让自己的模型更加灵敏。
从实战中学习往往是最快的,接下来我将用我这半吊子(估计连半吊子都算不上)的能力去Kaggle上实战学习了,实战中才能暴露问题,找出更多细节
QAQ
欢迎大家加我微信:hxq_1254971884 来拍砖啊,本人萌新,急需大佬大腿orz