当前位置:   article > 正文

Spyder: 一款优秀的Python 数据科学开发环境_用spyder做回归分析

用spyder做回归分析

个人感想

看到Udemy中机器学习的教程,讲师用的是Rstudio操作的R,用的是Spyder操作的Python,惊艳了我。决定学习一下这个编辑器的操作,做一下记录。

1. Spyder编辑器介绍

Spyder是一个强大的科学环境是用Python编写编辑器,由科学家,工程师和数据分析师所设计。它具有一个综合开发工具的高级编辑、分析、调试和概要分析功能与科学包的数据探索、交互执行、深度检查和漂亮的可视化功能的独特组合。此外,Spyder还内置集成了许多流行的科学软件包,包括NumPy、SciPy、Pandas、IPython、QtConsole、Matplotlib、Sympy等等。

2. Spyder安装

推荐使用anaconda进行安装,安装完成之后,直接点击windows键输入Spyder就可以打开软件。

3. 测试代码

新建一个test.py文件

# test

print("hello world")

a = 1
b = 2
c = a + b
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

运行程序,可以选中,点击ctrl + return,会运行脚本。

运行结果:

4. 测试作图

test.py增加画图代码,anconda安装好之后,像常用的pandas, numpy, matplotlib都可以直接使用,默认都已经安装过了。

import matplotlib.pyplot as plt
import numpy as np
dat = np.random.rand(100)
plt.plot(dat)
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5

点击图片,显示图片。
在这里插入图片描述

5. 做一个简单的回归分析

代码:

# regression
import numpy as np
import pandas as pd
from statsmodels.formula.api import ols

np.random.seed(123)
x = np.random.random(100)
y = 0.3*x + np.random.random(100)

dd = pd.DataFrame({"x":x,"y":y})
dd.head()

model = ols("y~x",dd).fit()
print(model.summary())
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

结果:

6. 使用感想

功能类似Rstudio,但是不是一行一行执行的,而是按照脚本执行。有变量名,有图片显示,有帮助文档,有文件路径,功能非常全。

这里,有一个感想,Spyder里面的代码补全功能很强大,不用考虑一行一行的执行,代码要成块的写。类似谷歌浏览器刚开始搜索直接在输入网址的地方书写,非常不习惯,想要找到类似浏览器搜索窗口的功能,一直没有找到。导致我用火狐很久,因为火狐有相关设置。工作后,用了这么长时间谷歌浏览器,为它的简洁和设计折服,浏览器就该这么使用!因为网址框的搜索设计非常友好,可以输入网址,可以键入关键词,自动匹配之前的记录。现在想起来,之前一心想找带搜索框的功能,是因为自己的思维没有打开,没有想到那一层,以前可能真的是执念太深……。用R语言的习惯去套用python,用Rstudio的思路去套用Spyder,都会有这种问题,学习一个东西,就用最地道的方式学习吧!

7. 一个简单的机器学习示例

这是一个资料里面的数据和代码,刚开始先键入别人的代码,然后再自己键入代码,真的是需要键入1万行代码后,才会熟悉python常用的方法,常用的格式,常用的套路。

数据格式:

数据描述:
这是一个工作经验年份和薪资待遇的数据,一般来说,年份越多,薪资越高。

分析思路:
这里使用机器学习的思路,讲数据分为:参考群和候选群,或者叫“训练群体”和“测试群体”,然后用回归分析建模,然后对测试群体进行预测,查看预测的准确性。

# 简单线性回归分析

# 载入需要的包
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

# 读取数据
dataset = pd.read_csv('Salary_Data.csv')
X = dataset.iloc[:, :-1].values
y = dataset.iloc[:, -1].values

# 把数据分为训练数据和测试数据,使用sklearn中的分割函数
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 1/3, random_state = 0)

# 载入回归分析
from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
re1 = regressor.fit(X_train, y_train)


# 根据模型对测试数据进行预测
y_pred = regressor.predict(X_test)

# 对训练群体结果可视化
plt.scatter(X_train, y_train, color = 'red')
plt.plot(X_train, regressor.predict(X_train), color = 'blue')
plt.title('Salary vs Experience (Training set)')
plt.xlabel('Years of Experience')
plt.ylabel('Salary')
plt.show()

# 对测试数据的预测可视化
plt.scatter(X_test, y_test, color = 'red')
plt.plot(X_train, regressor.predict(X_train), color = 'blue')
plt.title('Salary vs Experience (Test set)')
plt.xlabel('Years of Experience')
plt.ylabel('Salary')
plt.show()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41

结果:

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号