Python-GraphLab简单应用

Python-GraphLab应用

1. 安装方法

dato.org官网下载客户端安装即可,比较方便,如果使用代码安装比较费劲。

2.启动GraphLab

activate dato_env
jupyter notebook

3.基本用法

导入基本库:

import graphlab

导入数据(这里是CSV格式):

sf = graphlab.SFrame('==data==.csv')

输出sf内容

sf

输出sf的数据统计

sf.show()

默认的是在浏览器中打开新窗口,如果要在当前notebook界面输出结果,可以使用:
graphlab.canvas.set_target('ipynb')

默认的为:
graphlab.canvas.set_target(‘browser’)

sf命令输出的是表格的前几行数据,使用sf.head()可以达到同样的目的,同样,使用sf.tail()可以显示表格的最后几行数据。

具体数据处理语句使用

显示表格中的某一项
sf['country]
计算某一项的平均值等
sf['age'].mean()
sf['age'].max()
sf['age'].min()
创建新列Column
sf['Full Name'] = sf['First Name'] + sf['Last Name']
年龄列全部加2
sf['age'] = sf['age'] + 2
对Country列的字符串进行修改
def tranform_country(country):
    if country == 'USA':
        return 'United States'
    else:
        return country
##每一行都会调用上面的tranform_country方法
sf['Country'] = sf['Country'].apply(transform_country)

图表操作

sales = graphlab.SFrame('house_data.csv')
train data 和 test data的随机划分
train_data, test_data = sales.random_split(0.8,seed=0)

其中random_split是指随机分割函数,0.8代表train_data和test_data所占比例,seed=0代表随机数算法设定的种子。

使用train_datatest_data命令可以分别查看它们的数据内容。

创建Linear Regression模型
sqtf_model = graphlab.linear_regression.create(train_data,target='price',features=['sqtf_living'])

其中,target代表Y轴,features代表X轴

导入图表库
import matplotlib.pyplot as plt
作图
plt.plot(test_data['sqtf_living'],test_data['price'])

作散点图

plt.scatter(test_data['sqtf_living'],test_data['price'])

作预期结果直线

plt.plot(sf['size'], sf['price'], '.',sf['size'], model.predict(sf),'-')

其中predict是预测出来的值,使用-来表示,也就是最后结果为直线

如果要在当前notebook界面下显示则可以使用:
%matplotlib inline
来设置

含有多个曲线的作图:

其中’^’和’-‘代表每个点的形式是三角还是直线,’–’表示虚线,sqtf_model.predic(test_data)代表的是数据的预测,代码表示的是画出原始数据和预测数据并用不同的图线表示出来。

获得拟合的直线的参数
sqtf_mode.get('coefficients')

展示其中的某几个特征

my_features = ['bedrooms','bathrooms','sqtf_living']
sales[my_features].show()

完整的代码示例

%matplotlib inline
import graphlab
import matplotlib.pyplot as plt

加载文件
data = graphlab.SFrame('ex1data1.txt')
#分割训练样本和测试样本
train_data, test_data = data.random_split(.8, seed=0)
#训练线性模型
linear_model = graphlab.linear_regression.create(train_data, target = 'price', features = ['size'])
#输出图标
plt.plot(train_data['size'], train_data['price'],'.', train_data['size'], linear_model.predict(train_data),'-')
#输出误差
linear_model.evaluate(train_data)
linear_model.evaluate(test_data)
#输出获得的参数
linear_model.get('coefficients')
#对测试样本进行预测
linear_model.predict(test_data)
#将测试样本结果画成图表
plt.plot(test_data['size'], test_data['price'],'.',test_data['size'],linear_model.predict(test_data),'-')

你可能感兴趣的:(Python-GraphLab简单应用)