功能:
1 读取csv数据
2 转换数据格式
3 线性回归
4 1/x线性回归
5 绘制示意图
import matplotlib.pyplot as plt
import numpy as np
from sklearn import datasets, linear_model
from sklearn.metrics import mean_squared_error, r2_score
import pandas as pd
from pandas import Series,DataFrame
data = pd.read_csv('test2.csv')
print(data.head())
#居然不能读取中文
data.columns=['年份','收入指数','失业率']
print(data.head())
y = data['失业率'].values
print(y)
x = data[['收入指数']].values
print(x)
regr = linear_model.LinearRegression()
# Train the model using the training sets
regr.fit(x,y)
print(regr.coef_)
y2 = regr.predict(x)
# Plot outputs
plt.scatter(x, y, color='black')
plt.plot(x, y2, color='blue', linewidth=2)
plt.show()
y = data['失业率'].values
print(y)
x = data[['收入指数']].values
print(x)
regr2 = linear_model.LinearRegression()
# Train the model using the training sets
regr2.fit(1/x,y)
print(regr2.coef_)
x3 = np.arange(2.5,7.0,0.1)#此时是一维数组
print(x3)
x3 = np.expand_dims(x3, axis=1)#转二维数组
print(x3)
print(x)
y3= regr2.predict(1/x3)
# Plot outputs
plt.scatter(x, y, color='black')
plt.plot(x, y2, color='blue', linewidth=2)
plt.plot(x3, y3, color='red', linewidth=2)
plt.show()
最终结果: