用python语言写一段代码,采用RANSAC算法拟合一下正弦函数
时间: 2024-01-22 17:19:06 浏览: 20
以下是使用RANSAC算法拟合正弦函数的Python代码:
```python
import numpy as np
from sklearn.linear_model import RANSACRegressor
import matplotlib.pyplot as plt
# 生成正弦函数的数据
x = np.arange(0, 10, 0.1)
y = np.sin(x) + np.random.normal(0, 0.1, len(x))
# 添加一些离群值
y[15] = 4
y[45] = -3
y[80] = 2.5
# 使用RANSAC算法拟合正弦函数
ransac = RANSACRegressor()
x = x.reshape(-1, 1)
ransac.fit(x, y)
inlier_mask = ransac.inlier_mask_
outlier_mask = np.logical_not(inlier_mask)
# 绘制结果
line_x = np.arange(0, 10, 0.1).reshape(-1, 1)
line_y = ransac.predict(line_x)
plt.scatter(x[inlier_mask], y[inlier_mask], color='blue', marker='.', label='Inliers')
plt.scatter(x[outlier_mask], y[outlier_mask], color='red', marker='.', label='Outliers')
plt.plot(line_x, line_y, color='yellowgreen', linewidth=2, label='RANSAC regressor')
plt.legend(loc='lower right')
plt.xlabel('Input')
plt.ylabel('Response')
plt.show()
```
该代码生成一个正弦函数的数据,然后添加了一些离群值,并使用RANSAC算法拟合正弦函数,最后绘制出结果。