May*_*Raj 4 python numpy matplotlib pandas
在使用numpy分隔x_values和y_values时导入文件后:
import pandas as pd
from sklearn import linear_model
from matplotlib import pyplot
import numpy as np
#read data
dataframe = pd.read_csv('challenge_dataset.txt')
dataframe.columns=['Brain','Body']
x_values=np.array(dataframe['Brain'],dtype=np.float64).reshape(1,-1)
y_values=np.array(dataframe['Body'],dtype=np.float64).reshape(1,-1)
#train model on data
body_reg = linear_model.LinearRegression()
body_reg.fit(x_values, y_values)
prediction=body_reg.predict(x_values)
print(prediction)
#visualize results
pyplot.scatter(x_values, y_values)
pyplot.plot(x_values,prediction)
pyplot.show()
Run Code Online (Sandbox Code Playgroud)
我将绘图作为下图,它没有显示最佳拟合线,当我打印'预测'的值时,它显示的值与'y_values'相同.
#read data
dataframe = pd.read_csv('challenge_dataset.txt')
dataframe.columns=['Brain','Body']
x_values=dataframe[['Brain']]
y_values=dataframe[['Body']]
Run Code Online (Sandbox Code Playgroud)
为什么会这样?
提前致谢.
linear_model.LinearRegression().fit(X,y) 期待它的论点
X:numpy数组或形状稀疏矩阵[n_samples,n_features]
y:numpy数组形状[n_samples, n_targets]
这里有1个"特征"和1个"目标",因此预期的输入形状将是 (n_samples,1)
虽然情况如此
x_values=dataframe[['Brain']]
y_values=dataframe[['Body']]
Run Code Online (Sandbox Code Playgroud)
形状np.array(dataframe['Brain'],dtype=np.float64).reshape(1,-1)是(n_samples,).
从数据帧列中获取所需形状的另一种选择是将它们广播到具有新轴的2D阵列
x_values=dataframe['Brain'].values[:,np.newaxis]
y_values=dataframe['Body'].values[:,np.newaxis]
Run Code Online (Sandbox Code Playgroud)
请注意,为了显示一个好的行,您可能希望对x值进行排序.
import pandas as pd
from sklearn import linear_model
from matplotlib import pyplot
import numpy as np
#read data
x = np.random.rand(25,2)
x[:,1] = 2*x[:,0]+np.random.rand(25)
dataframe = pd.DataFrame(x,columns=['Brain','Body'])
x_values=dataframe['Brain'].values[:,np.newaxis]
y_values=dataframe['Body'].values[:,np.newaxis]
body_reg = linear_model.LinearRegression()
body_reg.fit(x_values, y_values)
prediction=body_reg.predict(np.sort(x_values, axis=0))
pyplot.scatter(x_values, y_values)
pyplot.plot(np.sort(x_values, axis=0),prediction)
pyplot.show()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7898 次 |
| 最近记录: |