机器学习线上利器:colab和kaggle / 机器学习 #4

in STEEM CN/中文7 months ago

光学不练假把式!了解了机器学习的基本概念后,就可以自己动手实践啰。如果是第一次上手机器学习,可能会觉得无从下手:到底要咋弄呢?其实,现在有很多便捷的方案可供选择,比如使用线上的编程工具:colab和kaggle

colab.jpg
https://colab.research.google.com/

kaggle.jpg
https://www.kaggle.com

这两个线上工具都集成了开发环境,打开即用,是不是很方便呢!

第一个案例:预测房价

import pandas as pd #导入Pandas,用于数据读取和处理
# 读入房价数据,示例代码中的文件地址为internet链接,读者也可以下载该文件到本机进行读取
# 如,当数据集和代码文件位于相同本地目录,路径名应为"./house.csv",或直接放"house.csv"亦可
df_housing = pd.read_csv("https://raw.githubusercontent.com/huangjia2019/house/master/house.csv") 
df_housing.head #显示加州房价数据

X = df_housing.drop("median_house_value",axis = 1) #构建特征集X
y = df_housing.median_house_value #构建标签集y

from sklearn.model_selection import train_test_split #导入数据集拆分工具
X_train, X_test, y_train, y_test = train_test_split(X, y, 
         test_size=0.2, random_state=0) #以80%/20%的比例进行数据集的拆分

from sklearn.linear_model import LinearRegression #导入线性回归算法模型
model = LinearRegression() #使用线性回归算法
model.fit(X_train, y_train) #用训练集数据,训练机器,拟合函数,确定参数

y_pred = model.predict(X_test) #预测测试集的Y值
print ('房价的真值(测试集)',y_test)
print ('预测的房价(测试集)',y_pred)

print("给预测评分:", model.score(X_test, y_test)) #评估预测结果

import matplotlib.pyplot as plt #导入matplotlib画图库
#用散点图显示家庭收入中位数和房价中位数的分布
plt.scatter(X_test.median_income, y_test,  color='brown')
#画出回归函数(从特征到预测标签)
plt.plot(X_test.median_income, y_pred, color='green', linewidth=1)
plt.xlabel('Median Income') #X轴-家庭收入中位数
plt.ylabel('Median House Value') #Y轴-房价中位数
plt.show() #显示房价分布和机器习得的函数图形

以上采用notebook的方式,可以分段逐步执行,这样可以很方便地检测代码是否正确。毕竟,每一行代码都够小白理解半天啰!

colab3.jpg
初始数据

colab2.jpg

最后代码运行的结果如上图所示:显示出加州各地区的平均房价随着家庭收入的上升而增加。 不错的实践,从此进入使用机器学习解决问题的大门!