lemooljiang avatar

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

lemooljiang

Published: 24 May 2024 › Updated: 24 May 2024

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

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

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

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

Written by

Designer , Poet , Technology enthusiasts

Read more #cn posts


Best Posts From lemooljiang

We have not curated any of lemooljiang's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.

More Posts From lemooljiang