import pandas as pd import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegression # 读取数据 data = pd.read_csv('/home/w123/Documents/data-analysis/40-0-data/ratio/40-10-ratio.txt', sep=',', header=None) # 提取 x 和 y 数据 x = data[2].values.reshape(-1, 1) y = data[1].values.reshape(-1, 1) # 绘制散点图 plt.scatter(x, y) plt.xlabel('x') plt.ylabel('y') plt.title('线性回归图') # 训练线性回归模型 model = LinearRegression() model.fit(x, y) # 绘制回归直线 plt.plot(x, model.predict(x), color='red') # 输出回归方程 print('回归方程:y = {:.2f}x + {:.2f}'.format(model.coef_[0][0], model.intercept_[0])) # 显示图形 plt.show()提高输出回归方程的精度
时间: 2024-04-27 16:23:57 浏览: 9
可以使用format函数中的f字符串格式化方法,将输出的浮点数保留更多的小数位数。例如,可以使用{:.4f}格式化方法将输出的浮点数保留四位小数,代码如下:
```
print('回归方程:y = {:.4f}x + {:.4f}'.format(model.coef_[0][0], model.intercept_[0]))
```
你也可以根据需要自定义保留的小数位数。
相关问题
import numpy as np import pandas import pandas as pd import matplotlib from sklearn import naive_bayes from sklearn.preprocessing import MinMaxScaler from sklearn.preprocessing import StandardScaler from sklearn.preprocessing import normalize from sklearn.preprocessing import Binarizer from sklearn.impute import SimpleImputer from sklearn.preprocessing import OneHotEncoder import matplotlib.pyplot as plt from sklearn.metrics import roc_curve, auc from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import confusion_matrix matplotlib.rc("font", family='Microsoft YaHei') data=pd.read_csv(r'D:\杂货铺\机器学习\银行数据集.csv',header=None)
这段代码导入了一系列的Python库,包括NumPy、Pandas、Matplotlib、scikit-learn等。其中,NumPy是Python科学计算的核心库,Pandas是数据处理的重要库,Matplotlib是绘图库,scikit-learn是机器学习库。接下来,使用Pandas读取一个CSV文件,该文件路径为D:\杂货铺\机器学习\银行数据集.csv,文件没有列名,所以header参数设置为None。
如何用我的.csv文件替换下列代码中的数据集,其中我的.csv文件是一个列数加上四个变量的五列数据,代码如下 #code-4-4.py #Multiple Linear Regression from sklearn.datasets import load_boston from sklearn.linear_model import LinearRegression import matplotlib.pyplot as plt from sklearn. model_selection import train_test_split dataset = load_boston() x_data = dataset.data # 导入所有特征变量 y_data = dataset.target # 导入目标值(房价) name_data = dataset.feature_names #导入特征 x_train,x_test,y_train,y_test = train_test_split(x_data, y_data,test_size= 0.25,random_state= 1001) mlr_model = LinearRegression() #创建线性回归估计器实例 mlr_model.fit(x_train,y_train)#用训练数据拟合模型 y_test_p = mlr_model.predict(x_test)#用训练的模型对测试集进行预测 plt.subplot(1, 1, 1) plt.scatter(x_test[:,5],y_test,s = 20, color="r") plt.scatter(x_test[:,5],y_test_p,s = 20, color="b") plt.xlabel('Room Number') plt.ylabel('Price') plt.title(name_data[5]) plt.show() r_squared = mlr_model.score(x_test, y_test) print('R2 = %s' %r_squared )
你可以使用 pandas 库中的 read_csv() 函数读取你的.csv文件,并将其转换为 numpy 数组,然后用这个数组替换原来的数据集。下面是修改后的代码:
```python
#code-4-4.py
import pandas as pd
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
data = pd.read_csv('your_file.csv') # 读取csv文件
x_data = data.iloc[:, 0:4].values # 取前四列作为特征变量
y_data = data.iloc[:, 4].values # 取第五列作为目标值
x_train, x_test, y_train, y_test = train_test_split(x_data, y_data, test_size=0.25, random_state=1001)
mlr_model = LinearRegression()
mlr_model.fit(x_train, y_train)
y_test_p = mlr_model.predict(x_test)
plt.subplot(1, 1, 1)
plt.scatter(x_test[:, 0], y_test, s=20, color="r") # 画散点图
plt.scatter(x_test[:, 0], y_test_p, s=20, color="b")
plt.xlabel('Feature 1')
plt.ylabel('Price')
plt.title('Your Title')
plt.show()
r_squared = mlr_model.score(x_test, y_test)
print('R2 = %s' %r_squared)
```
其中,`iloc` 函数用于指定读取数据的行列范围,`[:, 0:4]` 表示读取所有行的前四列,`[:, 4]` 表示读取所有行的第五列。注意,这里的列数需要与你的.csv文件相对应。