import numpy as np import pandas as pd import matplotlib.pyplot as plt plt.rcParams['font.sans-serif']=["SimHei"] #单使用会使负号显示错误 plt.rcParams['axes.unicode_minus']=False #把负号正常显示 # 读取北京房价数据 path='data.txt' data=pd.read_csv(path,header=None,names=['mianji','jiage']) # data.head() # data.describe() # 绘制散点图 data.plot(kind='scatter',x='mianji',y='jiage') plt.show() def computeCost(X,y,theta): inner=np.power((X*theta.T),2) return np.sum(inner)/(2*len(X)) data.insert(0,'Ones',1) clos=data.shape[1] X=data.iloc[:,0:clos-1] y=data.iloc[:,clos-1:clos] X=np.matrix(X.values) y=np.matrix(y.values) theta=np.matrix(np.array[0,0]) computeCost(X,y,theta) def gradientDescent(X,y,theta,alpha,iters): temp=np.atrix(np.zeros(theta.shape)) parameters=int(theta.ravel().shape[1]) cost=np.zeros(iters) for i in range(iters): error=(X*theta.T)-y for j in range(parameters): term=np.multiply(error,X[:,j]) temp[0,j]=theta[0,j]-((alpha/len(X))*np.sum(term)) theta=temp cost[i]=computeCost(X,y,theta) return theta,cost alpha=0.01 iters=1000 g,cost=gradientDescent(X,y,theta,alpha,iters) x=np.linspace(data.mianji.min(),data.mianji.max(),100) f=g[0,0]+(g[0,1]*X) fig,ax=plt.subplots(figsize=(12,8)) ax.plot(x,f,'r',label='北京房价') ax.scatter(data.mianji,data.jiage,label='Traning data') ax.legend(loc=4) ax.set_xlabel=('房子面积') ax.set_ylabel=('房子价格') ax.set_title("北京房价格回归图") plt.show()
时间: 2024-02-26 20:55:51 浏览: 167
在这段代码中,有一些问题:
1. `import` 语句应该在每个文件的开头,而不是在代码块的中间。
2. `np.matrix` 应该改为 `np.array`。
3. `theta=np.matrix(np.array[0,0])` 应该改为 `theta=np.array([0,0])`。
4. `temp=np.atrix(np.zeros(theta.shape))` 应该改为 `temp=np.array(np.zeros(theta.shape))`。
5. `ax.set_xlabel=('房子面积')` 和 `ax.set_ylabel=('房子价格')` 应该改为 `ax.set_xlabel('房子面积')` 和 `ax.set_ylabel('房子价格')`。
6. `f=g[0,0]+(g[0,1]*X)` 应该改为 `f=g[0,0]+(g[0,1]*x)`。
7. 在 `ax.set_title("北京房价格回归图")` 之前,应该添加一行 `plt.rcParams['font.sans-serif']=["SimHei"]` 以使中文标题正常显示。
请按照上述修改方法尝试运行代码并查看结果。
相关问题
import numpy as np import pandas as pd import seaborn as sns import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus']=False %matplotlib inline
这段代码主要是进行Python数据分析所需要引入的常用库的导入和设置matplotlib图表显示中文的字体和解决负号显示问题,同时使用%matplotlib inline命令设置图表以内嵌形式显示在notebook页面中。其中,numpy是Python中处理科学计算的一个重要库,pandas是Python中用于数据分析的库,seaborn是基于matplotlib的数据可视化库,matplotlib是Python中常用的绘图库。
import numpy as np import pandas as pd from tqdm import tqdm#进度条设置 import matplotlib.pyplot as plt from pylab import * import matplotlib; matplotlib.use('TkAgg') mpl.rcParams['font.sans-serif'] = ['SimHei'] mpl.rcParams['axes.unicode_minus'] = False
这段代码是用于导入一些常用的Python库,并且设置一些参数,例如使用进度条、中文显示、字体等等。其中,numpy和pandas库是用于数据处理的常用库,tqdm库是用于显示进度条的库,matplotlib和pylab库是用于数据可视化的常用库。如果你要进行数据处理和可视化的话,这些库都是非常有用的。
阅读全文