# import necessary libraries
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.feature_selection import SelectKBest, f_regression
from sklearn.linear_model import LinearRegression

# Load the iris dataset
iris = load_iris()

# Split the dataset into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.3, random_state=42)

# define pipeline
pipe = Pipeline([
    ('scaler', StandardScaler()),
    ('selector', SelectKBest(score_func=f_regression, k=3)),
    ('regressor', LinearRegression())
])

# train model
pipe.fit(X_train, y_train)

# evaluate model on testing set
test_score = pipe.score(X_test, y_test)

# validate model using cross-validation
from sklearn.model_selection import cross_val_score
cv_scores = cross_val_score(pipe, X_train, y_train, cv=5)

print(f'Test score: {test_score}')
print(f'CV scores: {cv_scores}')