机器学习入门笔记(1):墨尔本房价预测-决策树模型使用
注:本文为Machine Learning 的个人学习笔记, 学习站点:Kaggle.com
搭建一个最简单的机器学习模型仅需3步:
- 收集数据,数据清洗 ;
- 特征工程;
- 模型选择、整合,参数调优;
收集数据
墨尔本市房产信息数据都存放在这个csv文件里。
读取数据
import pandas as pd melbourne_file_path = 'melb_data1.csv'
将csv文件读取到_path变量中方便之后准确调用。
melb_data = pd.read_csv(melbourne_file_path) melbourne_data.describe()
读取文件之后,可以概览一下数据。
melbourne_data.columns
.columns 会输出dataframe中所有列的名字:
Index([‘Suburb’, ‘Address’, ‘Rooms’, ‘Type’, ‘Price’, ‘Method’, ‘SellerG’, ‘Date’, ‘Distance’, ‘Postcode’, ‘Bedroom2’, ‘Bathroom’, ‘Car’,‘Landsize’, ‘BuildingArea’, ‘YearBuilt’, ‘CouncilArea’, ‘Lattitude’, ‘Longtitude’, ‘Regionname’, ‘Propertycount’], dtype=‘object’)
信息比较全,有所处郊区、地址、房间数、类型、价格等等。
我们的目标是要以这些数据为基础找出合适的模型来预测其他房产的价格。
所以首先要确立目标 y:
y=melbourne_data.Price
然后便是选择可能会对y造成影响的特征:(先简单选择,后面会更详细的介绍特征工程)
melbourne_features = ['Rooms', 'Bathroom', 'Landsize', 'Lattitude', 'Longtitude']
选定特征之后便是 modelling 了:
from sklearn.tree import DecisionTreeRegressor melbourne_model = DecisionTreeRegressor(random_state=0) melbourne_model.fit(X, y)
这里使用决策树模型来对不同的房屋进行价值分类,在sklearn库中调用DecisionTreeRegressor即可,下图是决策树模型的原理展示:
现在就可以看看模型对前五所房产价格的预测了:
print("Making predictions for the following 5 houses:") print(X.head()) print("The predictions are") print(melbourne_model.predict(X.head()))
结果输出完成,那么如何评价这个模型预测的结果准不准确呢?
这里用最简单的一个指标MAE, mean absolute error,预测值和实际值之差的绝对值。
首先从sklearn库中调用MAE:
from sklearn.metrics import mean_absolute_error
用刚构建好的melbourne_model来预测所有的房价,再求出mae:
predicted_home_prices = melbourne_model.predict(X) mean_absolute_error(y, predicted_home_prices)
输出结果:1125.1804614629357
误差大概在1000+澳元,相较于1百万左右的总价来说,误差还可以,但是还有更多的方法来提升模型预测的准确性,比如调整数据:处理数据集中的缺失值,选择更好的模型:随机森林、 XGBoost等等。
- 机器学习入门笔记(三)----Octave简单使用
- [机器学习入门] 李宏毅机器学习笔记-25(Sturctured Linear Model;结构化预测-线性模型)
- [机器学习入门] 李宏毅机器学习笔记-31 (Sequence Labeling Problem part 3 ;结构化预测-序列标记 part 3)
- [机器学习入门] 李宏毅机器学习笔记-30 (Sequence Labeling Problem part 2 ;结构化预测-序列标记 part 2)
- Udacity机器学习入门项目5:预测波士顿房价
- Python机器学习笔记:使用Keras进行回归预测
- [机器学习入门] 李宏毅机器学习笔记-29 (Sequence Labeling Problem part 1;结构化预测-序列标记 part 1)
- 【机器学习入门笔记12:matplotlib绘图模块的使用】20190217
- android TraceView (图形化性能测试工具)使用入门笔记
- 从入门机器学习的零单排:OctaveMatlab经常使用绘图知识
- C# 2010 从入门到精通 学习笔记3 第4章 使用决策语句
- Netty5入门学习笔记004-使用Netty传输POJO对象(上)
- GSON使用的学习笔记,入门篇
- MVC学习笔记之入门篇(三)mvc3集合使用实体框架Entity Framework
- Django 入门笔记5 使用admin 管理
- C# 2010 从入门到精通 学习笔记8 第9章 使用枚举和结构来创建值类型
- Maven学习笔记(八)Maven的入门使用—2. 编写主代码
- 【LaTex】学习笔记:入门使用方法
- MySQL笔记---视图,存储过程, 触发器的使用入门
- 机器学习中使用的神经网络第九讲笔记