Pas beaucoup de non-sens, directement sur le code!
<"""# 利用 diabetes数据集来学习线性回归 # diabetes 是一个关于糖尿病的数据集, 该数据集包括442个病人的生理数据及一年以后的病情发展情况。 # 数据集中的特征值总共10项, 如下: # 年龄 # 性别 #体质指数 #血压 #s1,s2,s3,s4,s4,s6 (六种血清的化验数据) #但请注意,以上的数据是经过特殊处理, 10个数据中的每个都做了均值中心化处理,然后又用标准差乘以个体数量调整了数值范围。 #验证就会发现任何一列的所有数值平方和为1. """ import matplotlib.pyplot as pltimport numpy as npfrom sklearn import datasets, linear_modelfrom sklearn.metrics import mean_squared_error, r2_score # Load the diabetes datasetdiabetes = datasets.load_diabetes() # Use only one feature # 增加一个维度,得到一个体质指数数组[1],[2],...[442]diabetes_X = diabetes.data[:, np.newaxis,2]print(diabetes_X) # Split the data into training/testing setsdiabetes_X_train = diabetes_X[:-20]diabetes_X_test = diabetes_X[-20:] # Split the targets into training/testing setsdiabetes_y_train = diabetes.target[:-20]diabetes_y_test = diabetes.target[-20:] # Create linear regression objectregr = linear_model.LinearRegression() # Train the model using the training setsregr.fit(diabetes_X_train, diabetes_y_train) # Make predictions using the testing setdiabetes_y_pred = regr.predict(diabetes_X_test) # The coefficients # 查看相关系数 print('Coefficients: \n', regr.coef_) # The mean squared error # 均方差# 查看残差平方的均值(mean square error,MSE) print("Mean squared error: %.2f" % mean_squared_error(diabetes_y_test, diabetes_y_pred)) # Explained variance score: 1 is perfect prediction # R2 决定系数(拟合优度)# 模型越好:r2→1# 模型越差:r2→0print('Variance score: %.2f' % r2_score(diabetes_y_test, diabetes_y_pred)) # Plot outputsplt.scatter(diabetes_X_test, diabetes_y_test, color='black')plt.plot(diabetes_X_test, diabetes_y_pred, color='blue', linewidth=3) plt.xticks(())plt.yticks(()) plt.show()Le jugement de l'indice pour le modèle de régression a adopté certains processus, de SSE à R-carré à R-carré RJusted, est un processus parfait:
SSE (SUP LRI et): Total carré en raison de Erreur
R-Square (facteur de décision): Facteur de déterminationLa place rouge est ajusté: le niveau de réglage de la liberté du coefficient de détermination de la dermine
ci-dessous, je vais expliquer sur le nom, je crois que je vais peut apporter de l'aide! Le premier
La formule de calcul est la suivante:
En cas de jeu de données, plus petit que SSE, plus l'erreur, l'effet de modèle
aussi possibleLa valeur SSE de taille n'a pas de sens, car les échantillons augmentent, le blindage SSE augmentera cependant, cependant , dans le cas de différents ensembles de données, SSE est plus de sens
lundi, carré r (facteur de décision)
Comprendre les mathématiques: la dispersion des données d'origine est comprise comme niveau des données d'origine, l'erreur de données prédictives et les données d'origine, à la fois pour supprimer l'effet des données d'origine discrètes
facteur "c'est un bon ou un mauvais dans lequel les données sont modifiées.
Plage théorique (-∞∞, 1], plage de valeurs normale [0 1] - Les opérations réelles choisissent souvent de meilleures courbes pour calculer R2, donc très peu près de 1, plus 1, plus l'équation de l'équation à Y, le composant plus fort de Y, le moule est également meilleur
, presque 0, dit le modèle pionnier de l'ajustement
Expérience: 0.4, ajustement
Plus l'échantillon est grand, plus le R2 est plus important, de sorte que les résultats du modèle de différents ensembles de données auront une erreur certaine mardi, r carré r est ajusté le système de décision d'étalonnage) ] N est le nombre d'échantillons, P est le nombre de fonctionnalités, supprimez l'impact du nombre d'échantillons et le nombre de fonctionnalités. IndexAnalyse et évaluation de la régression linéaire Python mentionnée ci-dessus détaillée que Xiaobian a partagé tout le contenu, j'espère que je peux vous fournir une référence.